diff options
author | A. Unique TensorFlower <gardener@tensorflow.org> | 2018-07-10 10:22:57 -0700 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2018-07-10 10:29:57 -0700 |
commit | d2fa11acfd6b8a2a2663dc70cd899433bdde23e1 (patch) | |
tree | 55d9865cef5c19fec51556aa1b8b5afc66702efa /tensorflow/contrib/lite/schema | |
parent | a6df304e5ec4b0ad28884025558ecda414b9df07 (diff) |
Adding FakeQuant op support.
PiperOrigin-RevId: 203969441
Diffstat (limited to 'tensorflow/contrib/lite/schema')
-rw-r--r-- | tensorflow/contrib/lite/schema/schema.fbs | 8 | ||||
-rwxr-xr-x | tensorflow/contrib/lite/schema/schema_generated.h | 171 |
2 files changed, 173 insertions, 6 deletions
diff --git a/tensorflow/contrib/lite/schema/schema.fbs b/tensorflow/contrib/lite/schema/schema.fbs index 097b88b1c1..17ea26052d 100644 --- a/tensorflow/contrib/lite/schema/schema.fbs +++ b/tensorflow/contrib/lite/schema/schema.fbs @@ -161,6 +161,7 @@ enum BuiltinOperator : byte { SHAPE = 77, POW = 78, ARG_MIN = 79, + FAKE_QUANT = 80, } // Options for the builtin operators. @@ -222,6 +223,7 @@ union BuiltinOptions { ShapeOptions, PowOptions, ArgMinOptions, + FakeQuantOptions, } enum Padding : byte { SAME, VALID } @@ -523,6 +525,12 @@ table ShapeOptions { table PowOptions { } +table FakeQuantOptions { + min:float; + max:float; + num_bits:int; +} + // An OperatorCode can be an enum value (BuiltinOperator) if the operator is a // builtin, or a string if the operator is custom. table OperatorCode { diff --git a/tensorflow/contrib/lite/schema/schema_generated.h b/tensorflow/contrib/lite/schema/schema_generated.h index af923bae11..37489ebc68 100755 --- a/tensorflow/contrib/lite/schema/schema_generated.h +++ b/tensorflow/contrib/lite/schema/schema_generated.h @@ -202,6 +202,9 @@ struct ShapeOptionsT; struct PowOptions; struct PowOptionsT; +struct FakeQuantOptions; +struct FakeQuantOptionsT; + struct OperatorCode; struct OperatorCodeT; @@ -347,11 +350,12 @@ enum BuiltinOperator { BuiltinOperator_SHAPE = 77, BuiltinOperator_POW = 78, BuiltinOperator_ARG_MIN = 79, + BuiltinOperator_FAKE_QUANT = 80, BuiltinOperator_MIN = BuiltinOperator_ADD, - BuiltinOperator_MAX = BuiltinOperator_ARG_MIN + BuiltinOperator_MAX = BuiltinOperator_FAKE_QUANT }; -inline BuiltinOperator (&EnumValuesBuiltinOperator())[79] { +inline BuiltinOperator (&EnumValuesBuiltinOperator())[80] { static BuiltinOperator values[] = { BuiltinOperator_ADD, BuiltinOperator_AVERAGE_POOL_2D, @@ -431,7 +435,8 @@ inline BuiltinOperator (&EnumValuesBuiltinOperator())[79] { BuiltinOperator_RSQRT, BuiltinOperator_SHAPE, BuiltinOperator_POW, - BuiltinOperator_ARG_MIN + BuiltinOperator_ARG_MIN, + BuiltinOperator_FAKE_QUANT }; return values; } @@ -518,6 +523,7 @@ inline const char **EnumNamesBuiltinOperator() { "SHAPE", "POW", "ARG_MIN", + "FAKE_QUANT", nullptr }; return names; @@ -587,11 +593,12 @@ enum BuiltinOptions { BuiltinOptions_ShapeOptions = 55, BuiltinOptions_PowOptions = 56, BuiltinOptions_ArgMinOptions = 57, + BuiltinOptions_FakeQuantOptions = 58, BuiltinOptions_MIN = BuiltinOptions_NONE, - BuiltinOptions_MAX = BuiltinOptions_ArgMinOptions + BuiltinOptions_MAX = BuiltinOptions_FakeQuantOptions }; -inline BuiltinOptions (&EnumValuesBuiltinOptions())[58] { +inline BuiltinOptions (&EnumValuesBuiltinOptions())[59] { static BuiltinOptions values[] = { BuiltinOptions_NONE, BuiltinOptions_Conv2DOptions, @@ -650,7 +657,8 @@ inline BuiltinOptions (&EnumValuesBuiltinOptions())[58] { BuiltinOptions_NotEqualOptions, BuiltinOptions_ShapeOptions, BuiltinOptions_PowOptions, - BuiltinOptions_ArgMinOptions + BuiltinOptions_ArgMinOptions, + BuiltinOptions_FakeQuantOptions }; return values; } @@ -715,6 +723,7 @@ inline const char **EnumNamesBuiltinOptions() { "ShapeOptions", "PowOptions", "ArgMinOptions", + "FakeQuantOptions", nullptr }; return names; @@ -957,6 +966,10 @@ template<> struct BuiltinOptionsTraits<ArgMinOptions> { static const BuiltinOptions enum_value = BuiltinOptions_ArgMinOptions; }; +template<> struct BuiltinOptionsTraits<FakeQuantOptions> { + static const BuiltinOptions enum_value = BuiltinOptions_FakeQuantOptions; +}; + struct BuiltinOptionsUnion { BuiltinOptions type; void *value; @@ -1444,6 +1457,14 @@ struct BuiltinOptionsUnion { return type == BuiltinOptions_ArgMinOptions ? reinterpret_cast<const ArgMinOptionsT *>(value) : nullptr; } + FakeQuantOptionsT *AsFakeQuantOptions() { + return type == BuiltinOptions_FakeQuantOptions ? + reinterpret_cast<FakeQuantOptionsT *>(value) : nullptr; + } + const FakeQuantOptionsT *AsFakeQuantOptions() const { + return type == BuiltinOptions_FakeQuantOptions ? + reinterpret_cast<const FakeQuantOptionsT *>(value) : nullptr; + } }; bool VerifyBuiltinOptions(flatbuffers::Verifier &verifier, const void *obj, BuiltinOptions type); @@ -5187,6 +5208,84 @@ inline flatbuffers::Offset<PowOptions> CreatePowOptions( flatbuffers::Offset<PowOptions> CreatePowOptions(flatbuffers::FlatBufferBuilder &_fbb, const PowOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +struct FakeQuantOptionsT : public flatbuffers::NativeTable { + typedef FakeQuantOptions TableType; + float min; + float max; + int32_t num_bits; + FakeQuantOptionsT() + : min(0.0f), + max(0.0f), + num_bits(0) { + } +}; + +struct FakeQuantOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef FakeQuantOptionsT NativeTableType; + enum { + VT_MIN = 4, + VT_MAX = 6, + VT_NUM_BITS = 8 + }; + float min() const { + return GetField<float>(VT_MIN, 0.0f); + } + float max() const { + return GetField<float>(VT_MAX, 0.0f); + } + int32_t num_bits() const { + return GetField<int32_t>(VT_NUM_BITS, 0); + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyField<float>(verifier, VT_MIN) && + VerifyField<float>(verifier, VT_MAX) && + VerifyField<int32_t>(verifier, VT_NUM_BITS) && + verifier.EndTable(); + } + FakeQuantOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(FakeQuantOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; + static flatbuffers::Offset<FakeQuantOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const FakeQuantOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct FakeQuantOptionsBuilder { + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_min(float min) { + fbb_.AddElement<float>(FakeQuantOptions::VT_MIN, min, 0.0f); + } + void add_max(float max) { + fbb_.AddElement<float>(FakeQuantOptions::VT_MAX, max, 0.0f); + } + void add_num_bits(int32_t num_bits) { + fbb_.AddElement<int32_t>(FakeQuantOptions::VT_NUM_BITS, num_bits, 0); + } + explicit FakeQuantOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + FakeQuantOptionsBuilder &operator=(const FakeQuantOptionsBuilder &); + flatbuffers::Offset<FakeQuantOptions> Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset<FakeQuantOptions>(end); + return o; + } +}; + +inline flatbuffers::Offset<FakeQuantOptions> CreateFakeQuantOptions( + flatbuffers::FlatBufferBuilder &_fbb, + float min = 0.0f, + float max = 0.0f, + int32_t num_bits = 0) { + FakeQuantOptionsBuilder builder_(_fbb); + builder_.add_num_bits(num_bits); + builder_.add_max(max); + builder_.add_min(min); + return builder_.Finish(); +} + +flatbuffers::Offset<FakeQuantOptions> CreateFakeQuantOptions(flatbuffers::FlatBufferBuilder &_fbb, const FakeQuantOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + struct OperatorCodeT : public flatbuffers::NativeTable { typedef OperatorCode TableType; BuiltinOperator builtin_code; @@ -5491,6 +5590,9 @@ struct Operator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const ArgMinOptions *builtin_options_as_ArgMinOptions() const { return builtin_options_type() == BuiltinOptions_ArgMinOptions ? static_cast<const ArgMinOptions *>(builtin_options()) : nullptr; } + const FakeQuantOptions *builtin_options_as_FakeQuantOptions() const { + return builtin_options_type() == BuiltinOptions_FakeQuantOptions ? static_cast<const FakeQuantOptions *>(builtin_options()) : nullptr; + } const flatbuffers::Vector<uint8_t> *custom_options() const { return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_CUSTOM_OPTIONS); } @@ -5750,6 +5852,10 @@ template<> inline const ArgMinOptions *Operator::builtin_options_as<ArgMinOption return builtin_options_as_ArgMinOptions(); } +template<> inline const FakeQuantOptions *Operator::builtin_options_as<FakeQuantOptions>() const { + return builtin_options_as_FakeQuantOptions(); +} + struct OperatorBuilder { flatbuffers::FlatBufferBuilder &fbb_; flatbuffers::uoffset_t start_; @@ -7778,6 +7884,38 @@ inline flatbuffers::Offset<PowOptions> CreatePowOptions(flatbuffers::FlatBufferB _fbb); } +inline FakeQuantOptionsT *FakeQuantOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = new FakeQuantOptionsT(); + UnPackTo(_o, _resolver); + return _o; +} + +inline void FakeQuantOptions::UnPackTo(FakeQuantOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = min(); _o->min = _e; }; + { auto _e = max(); _o->max = _e; }; + { auto _e = num_bits(); _o->num_bits = _e; }; +} + +inline flatbuffers::Offset<FakeQuantOptions> FakeQuantOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const FakeQuantOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) { + return CreateFakeQuantOptions(_fbb, _o, _rehasher); +} + +inline flatbuffers::Offset<FakeQuantOptions> CreateFakeQuantOptions(flatbuffers::FlatBufferBuilder &_fbb, const FakeQuantOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const FakeQuantOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _min = _o->min; + auto _max = _o->max; + auto _num_bits = _o->num_bits; + return tflite::CreateFakeQuantOptions( + _fbb, + _min, + _max, + _num_bits); +} + inline OperatorCodeT *OperatorCode::UnPack(const flatbuffers::resolver_function_t *_resolver) const { auto _o = new OperatorCodeT(); UnPackTo(_o, _resolver); @@ -8195,6 +8333,10 @@ inline bool VerifyBuiltinOptions(flatbuffers::Verifier &verifier, const void *ob auto ptr = reinterpret_cast<const ArgMinOptions *>(obj); return verifier.VerifyTable(ptr); } + case BuiltinOptions_FakeQuantOptions: { + auto ptr = reinterpret_cast<const FakeQuantOptions *>(obj); + return verifier.VerifyTable(ptr); + } default: return false; } } @@ -8441,6 +8583,10 @@ inline void *BuiltinOptionsUnion::UnPack(const void *obj, BuiltinOptions type, c auto ptr = reinterpret_cast<const ArgMinOptions *>(obj); return ptr->UnPack(resolver); } + case BuiltinOptions_FakeQuantOptions: { + auto ptr = reinterpret_cast<const FakeQuantOptions *>(obj); + return ptr->UnPack(resolver); + } default: return nullptr; } } @@ -8675,6 +8821,10 @@ inline flatbuffers::Offset<void> BuiltinOptionsUnion::Pack(flatbuffers::FlatBuff auto ptr = reinterpret_cast<const ArgMinOptionsT *>(value); return CreateArgMinOptions(_fbb, ptr, _rehasher).Union(); } + case BuiltinOptions_FakeQuantOptions: { + auto ptr = reinterpret_cast<const FakeQuantOptionsT *>(value); + return CreateFakeQuantOptions(_fbb, ptr, _rehasher).Union(); + } default: return 0; } } @@ -8909,6 +9059,10 @@ inline BuiltinOptionsUnion::BuiltinOptionsUnion(const BuiltinOptionsUnion &u) FL value = new ArgMinOptionsT(*reinterpret_cast<ArgMinOptionsT *>(u.value)); break; } + case BuiltinOptions_FakeQuantOptions: { + value = new FakeQuantOptionsT(*reinterpret_cast<FakeQuantOptionsT *>(u.value)); + break; + } default: break; } @@ -9201,6 +9355,11 @@ inline void BuiltinOptionsUnion::Reset() { delete ptr; break; } + case BuiltinOptions_FakeQuantOptions: { + auto ptr = reinterpret_cast<FakeQuantOptionsT *>(value); + delete ptr; + break; + } default: break; } value = nullptr; |