Automated sync from github.com/tensorflow/tensorflow (#2510) BUG=automated sync from upstream NO_CHECK_TFLITE_FILES=automated sync from upstream
diff --git a/python/tflite_micro/numpy_utils.cc b/python/tflite_micro/numpy_utils.cc index 4a4aad8..20f43c9 100644 --- a/python/tflite_micro/numpy_utils.cc +++ b/python/tflite_micro/numpy_utils.cc
@@ -40,6 +40,9 @@ return NPY_FLOAT32; case kTfLiteFloat16: return NPY_FLOAT16; + case kTfLiteBFloat16: + // TODO(b/329491949): NPY_BFLOAT16 currently doesn't exist + return NPY_FLOAT16; case kTfLiteFloat64: return NPY_FLOAT64; case kTfLiteInt32:
diff --git a/tensorflow/lite/core/api/flatbuffer_conversions.cc b/tensorflow/lite/core/api/flatbuffer_conversions.cc index 10feeb3..d36c2b6 100644 --- a/tensorflow/lite/core/api/flatbuffer_conversions.cc +++ b/tensorflow/lite/core/api/flatbuffer_conversions.cc
@@ -1017,6 +1017,9 @@ case TensorType_FLOAT16: *type = kTfLiteFloat16; return kTfLiteOk; + case TensorType_BFLOAT16: + *type = kTfLiteBFloat16; + return kTfLiteOk; case TensorType_FLOAT32: *type = kTfLiteFloat32; return kTfLiteOk;
diff --git a/tensorflow/lite/core/c/c_api_types.h b/tensorflow/lite/core/c/c_api_types.h index 1170025..32cefa8 100644 --- a/tensorflow/lite/core/c/c_api_types.h +++ b/tensorflow/lite/core/c/c_api_types.h
@@ -133,6 +133,7 @@ kTfLiteUInt32 = 16, kTfLiteUInt16 = 17, kTfLiteInt4 = 18, + kTfLiteBFloat16 = 19, } TfLiteType; /// Legacy. Will be deprecated in favor of `TfLiteAffineQuantization`.
diff --git a/tensorflow/lite/core/c/common.cc b/tensorflow/lite/core/c/common.cc index fd7c415..7afecdb 100644 --- a/tensorflow/lite/core/c/common.cc +++ b/tensorflow/lite/core/c/common.cc
@@ -370,6 +370,8 @@ return "STRING"; case kTfLiteFloat16: return "FLOAT16"; + case kTfLiteBFloat16: + return "BFLOAT16"; case kTfLiteFloat64: return "FLOAT64"; case kTfLiteResource:
diff --git a/tensorflow/lite/core/c/common.h b/tensorflow/lite/core/c/common.h index 4e48901..9801bde 100644 --- a/tensorflow/lite/core/c/common.h +++ b/tensorflow/lite/core/c/common.h
@@ -296,6 +296,13 @@ uint16_t data; } TfLiteFloat16; +/// bfloat16 data type compatible with the Google Brain definition. +/// https://cloud.google.com/tpu/docs/bfloat16. +/// This provides 1 bit of sign, 8 bits of exponent, and 7 bits of mantissa. +typedef struct TfLiteBFloat16 { + uint16_t data; +} TfLiteBFloat16; + /// Return the name of a given type, for error reporting purposes. const char* TfLiteTypeGetName(TfLiteType type);
diff --git a/tensorflow/lite/micro/memory_helpers.cc b/tensorflow/lite/micro/memory_helpers.cc index 685f04b..94a6fe3 100644 --- a/tensorflow/lite/micro/memory_helpers.cc +++ b/tensorflow/lite/micro/memory_helpers.cc
@@ -50,6 +50,9 @@ case kTfLiteFloat16: *size = sizeof(int16_t); break; + case kTfLiteBFloat16: + *size = sizeof(int16_t); + break; case kTfLiteFloat32: *size = sizeof(float); break;
diff --git a/tensorflow/lite/micro/tools/ci_build/test_code_style.sh b/tensorflow/lite/micro/tools/ci_build/test_code_style.sh index 462fe7e..d49f429 100755 --- a/tensorflow/lite/micro/tools/ci_build/test_code_style.sh +++ b/tensorflow/lite/micro/tools/ci_build/test_code_style.sh
@@ -97,6 +97,7 @@ -e experimental \ -e schema/schema_generated.h \ -e schema/schema_utils.h \ + -e tensorflow/lite/micro/tools/layer_by_layer_schema_generated.h \ -e "\.inc" \ -e "\.md" \ ${EXCLUDE_SHARED_TFL_CODE}
diff --git a/tensorflow/lite/micro/tools/layer_by_layer.cc b/tensorflow/lite/micro/tools/layer_by_layer.cc index d9df228..91d325e 100644 --- a/tensorflow/lite/micro/tools/layer_by_layer.cc +++ b/tensorflow/lite/micro/tools/layer_by_layer.cc
@@ -66,6 +66,9 @@ case kTfLiteFloat16: tensor_type = TensorTypes_FLOAT16; return kTfLiteOk; + case kTfLiteBFloat16: + tensor_type = TensorTypes_BFLOAT16; + return kTfLiteOk; case kTfLiteFloat32: tensor_type = TensorTypes_FLOAT32; return kTfLiteOk;
diff --git a/tensorflow/lite/micro/tools/layer_by_layer_schema.fbs b/tensorflow/lite/micro/tools/layer_by_layer_schema.fbs index 9252ac3..4183c9c 100644 --- a/tensorflow/lite/micro/tools/layer_by_layer_schema.fbs +++ b/tensorflow/lite/micro/tools/layer_by_layer_schema.fbs
@@ -34,6 +34,7 @@ UINT32 = 15, UINT16 = 16, INT4 = 17, + BFLOAT16 = 18, } table TensorData {
diff --git a/tensorflow/lite/micro/tools/layer_by_layer_schema_generated.h b/tensorflow/lite/micro/tools/layer_by_layer_schema_generated.h index 1fe6ccb..67a2caa 100644 --- a/tensorflow/lite/micro/tools/layer_by_layer_schema_generated.h +++ b/tensorflow/lite/micro/tools/layer_by_layer_schema_generated.h
@@ -14,6 +14,7 @@ ==============================================================================*/ // automatically generated by the FlatBuffers compiler, do not modify + #ifndef FLATBUFFERS_GENERATED_LAYERBYLAYERSCHEMA_H_ #define FLATBUFFERS_GENERATED_LAYERBYLAYERSCHEMA_H_ @@ -22,9 +23,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 26, - "Non-compatible flatbuffers version included"); + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 26, + "Non-compatible flatbuffers version included"); struct TensorData; struct TensorDataBuilder; @@ -57,33 +58,64 @@ TensorTypes_UINT32 = 15, TensorTypes_UINT16 = 16, TensorTypes_INT4 = 17, + TensorTypes_BFLOAT16 = 18, TensorTypes_MIN = TensorTypes_FLOAT32, - TensorTypes_MAX = TensorTypes_INT4 + TensorTypes_MAX = TensorTypes_BFLOAT16 }; -inline const TensorTypes (&EnumValuesTensorTypes())[18] { +inline const TensorTypes (&EnumValuesTensorTypes())[19] { static const TensorTypes values[] = { - TensorTypes_FLOAT32, TensorTypes_FLOAT16, TensorTypes_INT32, - TensorTypes_UINT8, TensorTypes_INT64, TensorTypes_STRING, - TensorTypes_BOOL, TensorTypes_INT16, TensorTypes_COMPLEX64, - TensorTypes_INT8, TensorTypes_FLOAT64, TensorTypes_COMPLEX128, - TensorTypes_UINT64, TensorTypes_RESOURCE, TensorTypes_VARIANT, - TensorTypes_UINT32, TensorTypes_UINT16, TensorTypes_INT4}; + TensorTypes_FLOAT32, + TensorTypes_FLOAT16, + TensorTypes_INT32, + TensorTypes_UINT8, + TensorTypes_INT64, + TensorTypes_STRING, + TensorTypes_BOOL, + TensorTypes_INT16, + TensorTypes_COMPLEX64, + TensorTypes_INT8, + TensorTypes_FLOAT64, + TensorTypes_COMPLEX128, + TensorTypes_UINT64, + TensorTypes_RESOURCE, + TensorTypes_VARIANT, + TensorTypes_UINT32, + TensorTypes_UINT16, + TensorTypes_INT4, + TensorTypes_BFLOAT16 + }; return values; } -inline const char* const* EnumNamesTensorTypes() { - static const char* const names[19] = { - "FLOAT32", "FLOAT16", "INT32", "UINT8", "INT64", - "STRING", "BOOL", "INT16", "COMPLEX64", "INT8", - "FLOAT64", "COMPLEX128", "UINT64", "RESOURCE", "VARIANT", - "UINT32", "UINT16", "INT4", nullptr}; +inline const char * const *EnumNamesTensorTypes() { + static const char * const names[20] = { + "FLOAT32", + "FLOAT16", + "INT32", + "UINT8", + "INT64", + "STRING", + "BOOL", + "INT16", + "COMPLEX64", + "INT8", + "FLOAT64", + "COMPLEX128", + "UINT64", + "RESOURCE", + "VARIANT", + "UINT32", + "UINT16", + "INT4", + "BFLOAT16", + nullptr + }; return names; } -inline const char* EnumNameTensorTypes(TensorTypes e) { - if (::flatbuffers::IsOutRange(e, TensorTypes_FLOAT32, TensorTypes_INT4)) - return ""; +inline const char *EnumNameTensorTypes(TensorTypes e) { + if (::flatbuffers::IsOutRange(e, TensorTypes_FLOAT32, TensorTypes_BFLOAT16)) return ""; const size_t index = static_cast<size_t>(e); return EnumNamesTensorTypes()[index]; } @@ -111,47 +143,48 @@ VT_NUM_BYTES = 14, VT_LAYER_NUMBER = 16 }; - uint32_t input_index() const { return GetField<uint32_t>(VT_INPUT_INDEX, 0); } + uint32_t input_index() const { + return GetField<uint32_t>(VT_INPUT_INDEX, 0); + } uint32_t tensor_index() const { return GetField<uint32_t>(VT_TENSOR_INDEX, 0); } - const ::flatbuffers::Vector<int32_t>* shape() const { - return GetPointer<const ::flatbuffers::Vector<int32_t>*>(VT_SHAPE); + const ::flatbuffers::Vector<int32_t> *shape() const { + return GetPointer<const ::flatbuffers::Vector<int32_t> *>(VT_SHAPE); } TensorTypes dtype() const { return static_cast<TensorTypes>(GetField<int8_t>(VT_DTYPE, 0)); } - const ::flatbuffers::Vector<uint8_t>* data() const { - return GetPointer<const ::flatbuffers::Vector<uint8_t>*>(VT_DATA); + const ::flatbuffers::Vector<uint8_t> *data() const { + return GetPointer<const ::flatbuffers::Vector<uint8_t> *>(VT_DATA); } - uint32_t num_bytes() const { return GetField<uint32_t>(VT_NUM_BYTES, 0); } + uint32_t num_bytes() const { + return GetField<uint32_t>(VT_NUM_BYTES, 0); + } uint32_t layer_number() const { return GetField<uint32_t>(VT_LAYER_NUMBER, 0); } - bool Verify(::flatbuffers::Verifier& verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField<uint32_t>(verifier, VT_INPUT_INDEX, 4) && VerifyField<uint32_t>(verifier, VT_TENSOR_INDEX, 4) && - VerifyOffset(verifier, VT_SHAPE) && verifier.VerifyVector(shape()) && + VerifyOffset(verifier, VT_SHAPE) && + verifier.VerifyVector(shape()) && VerifyField<int8_t>(verifier, VT_DTYPE, 1) && - VerifyOffset(verifier, VT_DATA) && verifier.VerifyVector(data()) && + VerifyOffset(verifier, VT_DATA) && + verifier.VerifyVector(data()) && VerifyField<uint32_t>(verifier, VT_NUM_BYTES, 4) && VerifyField<uint32_t>(verifier, VT_LAYER_NUMBER, 4) && verifier.EndTable(); } - TensorDataT* UnPack( - const ::flatbuffers::resolver_function_t* _resolver = nullptr) const; - void UnPackTo( - TensorDataT* _o, - const ::flatbuffers::resolver_function_t* _resolver = nullptr) const; - static ::flatbuffers::Offset<TensorData> Pack( - ::flatbuffers::FlatBufferBuilder& _fbb, const TensorDataT* _o, - const ::flatbuffers::rehasher_function_t* _rehasher = nullptr); + TensorDataT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TensorDataT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset<TensorData> Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TensorDataT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TensorDataBuilder { typedef TensorData Table; - ::flatbuffers::FlatBufferBuilder& fbb_; + ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_input_index(uint32_t input_index) { fbb_.AddElement<uint32_t>(TensorData::VT_INPUT_INDEX, input_index, 0); @@ -163,8 +196,7 @@ fbb_.AddOffset(TensorData::VT_SHAPE, shape); } void add_dtype(TensorTypes dtype) { - fbb_.AddElement<int8_t>(TensorData::VT_DTYPE, static_cast<int8_t>(dtype), - 0); + fbb_.AddElement<int8_t>(TensorData::VT_DTYPE, static_cast<int8_t>(dtype), 0); } void add_data(::flatbuffers::Offset<::flatbuffers::Vector<uint8_t>> data) { fbb_.AddOffset(TensorData::VT_DATA, data); @@ -175,8 +207,8 @@ void add_layer_number(uint32_t layer_number) { fbb_.AddElement<uint32_t>(TensorData::VT_LAYER_NUMBER, layer_number, 0); } - explicit TensorDataBuilder(::flatbuffers::FlatBufferBuilder& _fbb) - : fbb_(_fbb) { + explicit TensorDataBuilder(::flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset<TensorData> Finish() { @@ -187,12 +219,14 @@ }; inline ::flatbuffers::Offset<TensorData> CreateTensorData( - ::flatbuffers::FlatBufferBuilder& _fbb, uint32_t input_index = 0, + ::flatbuffers::FlatBufferBuilder &_fbb, + uint32_t input_index = 0, uint32_t tensor_index = 0, ::flatbuffers::Offset<::flatbuffers::Vector<int32_t>> shape = 0, TensorTypes dtype = TensorTypes_FLOAT32, ::flatbuffers::Offset<::flatbuffers::Vector<uint8_t>> data = 0, - uint32_t num_bytes = 0, uint32_t layer_number = 0) { + uint32_t num_bytes = 0, + uint32_t layer_number = 0) { TensorDataBuilder builder_(_fbb); builder_.add_layer_number(layer_number); builder_.add_num_bytes(num_bytes); @@ -205,29 +239,37 @@ } inline ::flatbuffers::Offset<TensorData> CreateTensorDataDirect( - ::flatbuffers::FlatBufferBuilder& _fbb, uint32_t input_index = 0, - uint32_t tensor_index = 0, const std::vector<int32_t>* shape = nullptr, + ::flatbuffers::FlatBufferBuilder &_fbb, + uint32_t input_index = 0, + uint32_t tensor_index = 0, + const std::vector<int32_t> *shape = nullptr, TensorTypes dtype = TensorTypes_FLOAT32, - const std::vector<uint8_t>* data = nullptr, uint32_t num_bytes = 0, + const std::vector<uint8_t> *data = nullptr, + uint32_t num_bytes = 0, uint32_t layer_number = 0) { auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0; auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0; - return CreateTensorData(_fbb, input_index, tensor_index, shape__, dtype, - data__, num_bytes, layer_number); + return CreateTensorData( + _fbb, + input_index, + tensor_index, + shape__, + dtype, + data__, + num_bytes, + layer_number); } -::flatbuffers::Offset<TensorData> CreateTensorData( - ::flatbuffers::FlatBufferBuilder& _fbb, const TensorDataT* _o, - const ::flatbuffers::rehasher_function_t* _rehasher = nullptr); +::flatbuffers::Offset<TensorData> CreateTensorData(::flatbuffers::FlatBufferBuilder &_fbb, const TensorDataT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); struct SubgraphDataT : public ::flatbuffers::NativeTable { typedef SubgraphData TableType; std::vector<std::unique_ptr<TensorDataT>> outputs{}; uint32_t subgraph_index = 0; SubgraphDataT() = default; - SubgraphDataT(const SubgraphDataT& o); + SubgraphDataT(const SubgraphDataT &o); SubgraphDataT(SubgraphDataT&&) FLATBUFFERS_NOEXCEPT = default; - SubgraphDataT& operator=(SubgraphDataT o) FLATBUFFERS_NOEXCEPT; + SubgraphDataT &operator=(SubgraphDataT o) FLATBUFFERS_NOEXCEPT; }; struct SubgraphData FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { @@ -237,47 +279,37 @@ VT_OUTPUTS = 4, VT_SUBGRAPH_INDEX = 6 }; - const ::flatbuffers::Vector<::flatbuffers::Offset<TensorData>>* outputs() - const { - return GetPointer< - const ::flatbuffers::Vector<::flatbuffers::Offset<TensorData>>*>( - VT_OUTPUTS); + const ::flatbuffers::Vector<::flatbuffers::Offset<TensorData>> *outputs() const { + return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<TensorData>> *>(VT_OUTPUTS); } uint32_t subgraph_index() const { return GetField<uint32_t>(VT_SUBGRAPH_INDEX, 0); } - bool Verify(::flatbuffers::Verifier& verifier) const { - return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_OUTPUTS) && + bool Verify(::flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_OUTPUTS) && verifier.VerifyVector(outputs()) && verifier.VerifyVectorOfTables(outputs()) && VerifyField<uint32_t>(verifier, VT_SUBGRAPH_INDEX, 4) && verifier.EndTable(); } - SubgraphDataT* UnPack( - const ::flatbuffers::resolver_function_t* _resolver = nullptr) const; - void UnPackTo( - SubgraphDataT* _o, - const ::flatbuffers::resolver_function_t* _resolver = nullptr) const; - static ::flatbuffers::Offset<SubgraphData> Pack( - ::flatbuffers::FlatBufferBuilder& _fbb, const SubgraphDataT* _o, - const ::flatbuffers::rehasher_function_t* _rehasher = nullptr); + SubgraphDataT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(SubgraphDataT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset<SubgraphData> Pack(::flatbuffers::FlatBufferBuilder &_fbb, const SubgraphDataT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct SubgraphDataBuilder { typedef SubgraphData Table; - ::flatbuffers::FlatBufferBuilder& fbb_; + ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; - void add_outputs(::flatbuffers::Offset< - ::flatbuffers::Vector<::flatbuffers::Offset<TensorData>>> - outputs) { + void add_outputs(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<TensorData>>> outputs) { fbb_.AddOffset(SubgraphData::VT_OUTPUTS, outputs); } void add_subgraph_index(uint32_t subgraph_index) { - fbb_.AddElement<uint32_t>(SubgraphData::VT_SUBGRAPH_INDEX, subgraph_index, - 0); + fbb_.AddElement<uint32_t>(SubgraphData::VT_SUBGRAPH_INDEX, subgraph_index, 0); } - explicit SubgraphDataBuilder(::flatbuffers::FlatBufferBuilder& _fbb) - : fbb_(_fbb) { + explicit SubgraphDataBuilder(::flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset<SubgraphData> Finish() { @@ -288,10 +320,8 @@ }; inline ::flatbuffers::Offset<SubgraphData> CreateSubgraphData( - ::flatbuffers::FlatBufferBuilder& _fbb, - ::flatbuffers::Offset< - ::flatbuffers::Vector<::flatbuffers::Offset<TensorData>>> - outputs = 0, + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<TensorData>>> outputs = 0, uint32_t subgraph_index = 0) { SubgraphDataBuilder builder_(_fbb); builder_.add_subgraph_index(subgraph_index); @@ -300,27 +330,26 @@ } inline ::flatbuffers::Offset<SubgraphData> CreateSubgraphDataDirect( - ::flatbuffers::FlatBufferBuilder& _fbb, - const std::vector<::flatbuffers::Offset<TensorData>>* outputs = nullptr, + ::flatbuffers::FlatBufferBuilder &_fbb, + const std::vector<::flatbuffers::Offset<TensorData>> *outputs = nullptr, uint32_t subgraph_index = 0) { - auto outputs__ = - outputs ? _fbb.CreateVector<::flatbuffers::Offset<TensorData>>(*outputs) - : 0; - return CreateSubgraphData(_fbb, outputs__, subgraph_index); + auto outputs__ = outputs ? _fbb.CreateVector<::flatbuffers::Offset<TensorData>>(*outputs) : 0; + return CreateSubgraphData( + _fbb, + outputs__, + subgraph_index); } -::flatbuffers::Offset<SubgraphData> CreateSubgraphData( - ::flatbuffers::FlatBufferBuilder& _fbb, const SubgraphDataT* _o, - const ::flatbuffers::rehasher_function_t* _rehasher = nullptr); +::flatbuffers::Offset<SubgraphData> CreateSubgraphData(::flatbuffers::FlatBufferBuilder &_fbb, const SubgraphDataT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); struct ModelTestDataT : public ::flatbuffers::NativeTable { typedef ModelTestData TableType; std::vector<std::unique_ptr<TensorDataT>> input_data{}; std::vector<std::unique_ptr<SubgraphDataT>> subgraph_data{}; ModelTestDataT() = default; - ModelTestDataT(const ModelTestDataT& o); + ModelTestDataT(const ModelTestDataT &o); ModelTestDataT(ModelTestDataT&&) FLATBUFFERS_NOEXCEPT = default; - ModelTestDataT& operator=(ModelTestDataT o) FLATBUFFERS_NOEXCEPT; + ModelTestDataT &operator=(ModelTestDataT o) FLATBUFFERS_NOEXCEPT; }; struct ModelTestData FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { @@ -330,19 +359,13 @@ VT_INPUT_DATA = 4, VT_SUBGRAPH_DATA = 6 }; - const ::flatbuffers::Vector<::flatbuffers::Offset<TensorData>>* input_data() - const { - return GetPointer< - const ::flatbuffers::Vector<::flatbuffers::Offset<TensorData>>*>( - VT_INPUT_DATA); + const ::flatbuffers::Vector<::flatbuffers::Offset<TensorData>> *input_data() const { + return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<TensorData>> *>(VT_INPUT_DATA); } - const ::flatbuffers::Vector<::flatbuffers::Offset<SubgraphData>>* - subgraph_data() const { - return GetPointer< - const ::flatbuffers::Vector<::flatbuffers::Offset<SubgraphData>>*>( - VT_SUBGRAPH_DATA); + const ::flatbuffers::Vector<::flatbuffers::Offset<SubgraphData>> *subgraph_data() const { + return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<SubgraphData>> *>(VT_SUBGRAPH_DATA); } - bool Verify(::flatbuffers::Verifier& verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_INPUT_DATA) && verifier.VerifyVector(input_data()) && @@ -352,33 +375,23 @@ verifier.VerifyVectorOfTables(subgraph_data()) && verifier.EndTable(); } - ModelTestDataT* UnPack( - const ::flatbuffers::resolver_function_t* _resolver = nullptr) const; - void UnPackTo( - ModelTestDataT* _o, - const ::flatbuffers::resolver_function_t* _resolver = nullptr) const; - static ::flatbuffers::Offset<ModelTestData> Pack( - ::flatbuffers::FlatBufferBuilder& _fbb, const ModelTestDataT* _o, - const ::flatbuffers::rehasher_function_t* _rehasher = nullptr); + ModelTestDataT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(ModelTestDataT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset<ModelTestData> Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ModelTestDataT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct ModelTestDataBuilder { typedef ModelTestData Table; - ::flatbuffers::FlatBufferBuilder& fbb_; + ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; - void add_input_data(::flatbuffers::Offset< - ::flatbuffers::Vector<::flatbuffers::Offset<TensorData>>> - input_data) { + void add_input_data(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<TensorData>>> input_data) { fbb_.AddOffset(ModelTestData::VT_INPUT_DATA, input_data); } - void add_subgraph_data( - ::flatbuffers::Offset< - ::flatbuffers::Vector<::flatbuffers::Offset<SubgraphData>>> - subgraph_data) { + void add_subgraph_data(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<SubgraphData>>> subgraph_data) { fbb_.AddOffset(ModelTestData::VT_SUBGRAPH_DATA, subgraph_data); } - explicit ModelTestDataBuilder(::flatbuffers::FlatBufferBuilder& _fbb) - : fbb_(_fbb) { + explicit ModelTestDataBuilder(::flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset<ModelTestData> Finish() { @@ -389,13 +402,9 @@ }; inline ::flatbuffers::Offset<ModelTestData> CreateModelTestData( - ::flatbuffers::FlatBufferBuilder& _fbb, - ::flatbuffers::Offset< - ::flatbuffers::Vector<::flatbuffers::Offset<TensorData>>> - input_data = 0, - ::flatbuffers::Offset< - ::flatbuffers::Vector<::flatbuffers::Offset<SubgraphData>>> - subgraph_data = 0) { + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<TensorData>>> input_data = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<SubgraphData>>> subgraph_data = 0) { ModelTestDataBuilder builder_(_fbb); builder_.add_subgraph_data(subgraph_data); builder_.add_input_data(input_data); @@ -403,94 +412,45 @@ } inline ::flatbuffers::Offset<ModelTestData> CreateModelTestDataDirect( - ::flatbuffers::FlatBufferBuilder& _fbb, - const std::vector<::flatbuffers::Offset<TensorData>>* input_data = nullptr, - const std::vector<::flatbuffers::Offset<SubgraphData>>* subgraph_data = - nullptr) { - auto input_data__ = - input_data - ? _fbb.CreateVector<::flatbuffers::Offset<TensorData>>(*input_data) - : 0; - auto subgraph_data__ = - subgraph_data ? _fbb.CreateVector<::flatbuffers::Offset<SubgraphData>>( - *subgraph_data) - : 0; - return CreateModelTestData(_fbb, input_data__, subgraph_data__); + ::flatbuffers::FlatBufferBuilder &_fbb, + const std::vector<::flatbuffers::Offset<TensorData>> *input_data = nullptr, + const std::vector<::flatbuffers::Offset<SubgraphData>> *subgraph_data = nullptr) { + auto input_data__ = input_data ? _fbb.CreateVector<::flatbuffers::Offset<TensorData>>(*input_data) : 0; + auto subgraph_data__ = subgraph_data ? _fbb.CreateVector<::flatbuffers::Offset<SubgraphData>>(*subgraph_data) : 0; + return CreateModelTestData( + _fbb, + input_data__, + subgraph_data__); } -::flatbuffers::Offset<ModelTestData> CreateModelTestData( - ::flatbuffers::FlatBufferBuilder& _fbb, const ModelTestDataT* _o, - const ::flatbuffers::rehasher_function_t* _rehasher = nullptr); +::flatbuffers::Offset<ModelTestData> CreateModelTestData(::flatbuffers::FlatBufferBuilder &_fbb, const ModelTestDataT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -inline TensorDataT* TensorData::UnPack( - const ::flatbuffers::resolver_function_t* _resolver) const { +inline TensorDataT *TensorData::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr<TensorDataT>(new TensorDataT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TensorData::UnPackTo( - TensorDataT* _o, - const ::flatbuffers::resolver_function_t* _resolver) const { +inline void TensorData::UnPackTo(TensorDataT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { - auto _e = input_index(); - _o->input_index = _e; - } - { - auto _e = tensor_index(); - _o->tensor_index = _e; - } - { - auto _e = shape(); - if (_e) { - _o->shape.resize(_e->size()); - for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { - _o->shape[_i] = _e->Get(_i); - } - } else { - _o->shape.resize(0); - } - } - { - auto _e = dtype(); - _o->dtype = _e; - } - { - auto _e = data(); - if (_e) { - _o->data.resize(_e->size()); - std::copy(_e->begin(), _e->end(), _o->data.begin()); - } - } - { - auto _e = num_bytes(); - _o->num_bytes = _e; - } - { - auto _e = layer_number(); - _o->layer_number = _e; - } + { auto _e = input_index(); _o->input_index = _e; } + { auto _e = tensor_index(); _o->tensor_index = _e; } + { auto _e = shape(); if (_e) { _o->shape.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->shape[_i] = _e->Get(_i); } } else { _o->shape.resize(0); } } + { auto _e = dtype(); _o->dtype = _e; } + { auto _e = data(); if (_e) { _o->data.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->data.begin()); } } + { auto _e = num_bytes(); _o->num_bytes = _e; } + { auto _e = layer_number(); _o->layer_number = _e; } } -inline ::flatbuffers::Offset<TensorData> TensorData::Pack( - ::flatbuffers::FlatBufferBuilder& _fbb, const TensorDataT* _o, - const ::flatbuffers::rehasher_function_t* _rehasher) { +inline ::flatbuffers::Offset<TensorData> TensorData::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TensorDataT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTensorData(_fbb, _o, _rehasher); } -inline ::flatbuffers::Offset<TensorData> CreateTensorData( - ::flatbuffers::FlatBufferBuilder& _fbb, const TensorDataT* _o, - const ::flatbuffers::rehasher_function_t* _rehasher) { +inline ::flatbuffers::Offset<TensorData> CreateTensorData(::flatbuffers::FlatBufferBuilder &_fbb, const TensorDataT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { - ::flatbuffers::FlatBufferBuilder* __fbb; - const TensorDataT* __o; - const ::flatbuffers::rehasher_function_t* __rehasher; - } _va = {&_fbb, _o, _rehasher}; - (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TensorDataT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _input_index = _o->input_index; auto _tensor_index = _o->tensor_index; auto _shape = _o->shape.size() ? _fbb.CreateVector(_o->shape) : 0; @@ -498,236 +458,140 @@ auto _data = _o->data.size() ? _fbb.CreateVector(_o->data) : 0; auto _num_bytes = _o->num_bytes; auto _layer_number = _o->layer_number; - return CreateTensorData(_fbb, _input_index, _tensor_index, _shape, _dtype, - _data, _num_bytes, _layer_number); + return CreateTensorData( + _fbb, + _input_index, + _tensor_index, + _shape, + _dtype, + _data, + _num_bytes, + _layer_number); } -inline SubgraphDataT::SubgraphDataT(const SubgraphDataT& o) - : subgraph_index(o.subgraph_index) { +inline SubgraphDataT::SubgraphDataT(const SubgraphDataT &o) + : subgraph_index(o.subgraph_index) { outputs.reserve(o.outputs.size()); - for (const auto& outputs_ : o.outputs) { - outputs.emplace_back((outputs_) ? new TensorDataT(*outputs_) : nullptr); - } + for (const auto &outputs_ : o.outputs) { outputs.emplace_back((outputs_) ? new TensorDataT(*outputs_) : nullptr); } } -inline SubgraphDataT& SubgraphDataT::operator=(SubgraphDataT o) - FLATBUFFERS_NOEXCEPT { +inline SubgraphDataT &SubgraphDataT::operator=(SubgraphDataT o) FLATBUFFERS_NOEXCEPT { std::swap(outputs, o.outputs); std::swap(subgraph_index, o.subgraph_index); return *this; } -inline SubgraphDataT* SubgraphData::UnPack( - const ::flatbuffers::resolver_function_t* _resolver) const { +inline SubgraphDataT *SubgraphData::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr<SubgraphDataT>(new SubgraphDataT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void SubgraphData::UnPackTo( - SubgraphDataT* _o, - const ::flatbuffers::resolver_function_t* _resolver) const { +inline void SubgraphData::UnPackTo(SubgraphDataT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { - auto _e = outputs(); - if (_e) { - _o->outputs.resize(_e->size()); - for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { - if (_o->outputs[_i]) { - _e->Get(_i)->UnPackTo(_o->outputs[_i].get(), _resolver); - } else { - _o->outputs[_i] = - std::unique_ptr<TensorDataT>(_e->Get(_i)->UnPack(_resolver)); - }; - } - } else { - _o->outputs.resize(0); - } - } - { - auto _e = subgraph_index(); - _o->subgraph_index = _e; - } + { auto _e = outputs(); if (_e) { _o->outputs.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->outputs[_i]) { _e->Get(_i)->UnPackTo(_o->outputs[_i].get(), _resolver); } else { _o->outputs[_i] = std::unique_ptr<TensorDataT>(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->outputs.resize(0); } } + { auto _e = subgraph_index(); _o->subgraph_index = _e; } } -inline ::flatbuffers::Offset<SubgraphData> SubgraphData::Pack( - ::flatbuffers::FlatBufferBuilder& _fbb, const SubgraphDataT* _o, - const ::flatbuffers::rehasher_function_t* _rehasher) { +inline ::flatbuffers::Offset<SubgraphData> SubgraphData::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const SubgraphDataT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateSubgraphData(_fbb, _o, _rehasher); } -inline ::flatbuffers::Offset<SubgraphData> CreateSubgraphData( - ::flatbuffers::FlatBufferBuilder& _fbb, const SubgraphDataT* _o, - const ::flatbuffers::rehasher_function_t* _rehasher) { +inline ::flatbuffers::Offset<SubgraphData> CreateSubgraphData(::flatbuffers::FlatBufferBuilder &_fbb, const SubgraphDataT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { - ::flatbuffers::FlatBufferBuilder* __fbb; - const SubgraphDataT* __o; - const ::flatbuffers::rehasher_function_t* __rehasher; - } _va = {&_fbb, _o, _rehasher}; - (void)_va; - auto _outputs = _o->outputs.size() - ? _fbb.CreateVector<::flatbuffers::Offset<TensorData>>( - _o->outputs.size(), - [](size_t i, _VectorArgs* __va) { - return CreateTensorData( - *__va->__fbb, __va->__o->outputs[i].get(), - __va->__rehasher); - }, - &_va) - : 0; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const SubgraphDataT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _outputs = _o->outputs.size() ? _fbb.CreateVector<::flatbuffers::Offset<TensorData>> (_o->outputs.size(), [](size_t i, _VectorArgs *__va) { return CreateTensorData(*__va->__fbb, __va->__o->outputs[i].get(), __va->__rehasher); }, &_va ) : 0; auto _subgraph_index = _o->subgraph_index; - return CreateSubgraphData(_fbb, _outputs, _subgraph_index); + return CreateSubgraphData( + _fbb, + _outputs, + _subgraph_index); } -inline ModelTestDataT::ModelTestDataT(const ModelTestDataT& o) { +inline ModelTestDataT::ModelTestDataT(const ModelTestDataT &o) { input_data.reserve(o.input_data.size()); - for (const auto& input_data_ : o.input_data) { - input_data.emplace_back((input_data_) ? new TensorDataT(*input_data_) - : nullptr); - } + for (const auto &input_data_ : o.input_data) { input_data.emplace_back((input_data_) ? new TensorDataT(*input_data_) : nullptr); } subgraph_data.reserve(o.subgraph_data.size()); - for (const auto& subgraph_data_ : o.subgraph_data) { - subgraph_data.emplace_back( - (subgraph_data_) ? new SubgraphDataT(*subgraph_data_) : nullptr); - } + for (const auto &subgraph_data_ : o.subgraph_data) { subgraph_data.emplace_back((subgraph_data_) ? new SubgraphDataT(*subgraph_data_) : nullptr); } } -inline ModelTestDataT& ModelTestDataT::operator=(ModelTestDataT o) - FLATBUFFERS_NOEXCEPT { +inline ModelTestDataT &ModelTestDataT::operator=(ModelTestDataT o) FLATBUFFERS_NOEXCEPT { std::swap(input_data, o.input_data); std::swap(subgraph_data, o.subgraph_data); return *this; } -inline ModelTestDataT* ModelTestData::UnPack( - const ::flatbuffers::resolver_function_t* _resolver) const { +inline ModelTestDataT *ModelTestData::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr<ModelTestDataT>(new ModelTestDataT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void ModelTestData::UnPackTo( - ModelTestDataT* _o, - const ::flatbuffers::resolver_function_t* _resolver) const { +inline void ModelTestData::UnPackTo(ModelTestDataT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { - auto _e = input_data(); - if (_e) { - _o->input_data.resize(_e->size()); - for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { - if (_o->input_data[_i]) { - _e->Get(_i)->UnPackTo(_o->input_data[_i].get(), _resolver); - } else { - _o->input_data[_i] = - std::unique_ptr<TensorDataT>(_e->Get(_i)->UnPack(_resolver)); - }; - } - } else { - _o->input_data.resize(0); - } - } - { - auto _e = subgraph_data(); - if (_e) { - _o->subgraph_data.resize(_e->size()); - for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { - if (_o->subgraph_data[_i]) { - _e->Get(_i)->UnPackTo(_o->subgraph_data[_i].get(), _resolver); - } else { - _o->subgraph_data[_i] = - std::unique_ptr<SubgraphDataT>(_e->Get(_i)->UnPack(_resolver)); - }; - } - } else { - _o->subgraph_data.resize(0); - } - } + { auto _e = input_data(); if (_e) { _o->input_data.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->input_data[_i]) { _e->Get(_i)->UnPackTo(_o->input_data[_i].get(), _resolver); } else { _o->input_data[_i] = std::unique_ptr<TensorDataT>(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->input_data.resize(0); } } + { auto _e = subgraph_data(); if (_e) { _o->subgraph_data.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->subgraph_data[_i]) { _e->Get(_i)->UnPackTo(_o->subgraph_data[_i].get(), _resolver); } else { _o->subgraph_data[_i] = std::unique_ptr<SubgraphDataT>(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->subgraph_data.resize(0); } } } -inline ::flatbuffers::Offset<ModelTestData> ModelTestData::Pack( - ::flatbuffers::FlatBufferBuilder& _fbb, const ModelTestDataT* _o, - const ::flatbuffers::rehasher_function_t* _rehasher) { +inline ::flatbuffers::Offset<ModelTestData> ModelTestData::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ModelTestDataT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateModelTestData(_fbb, _o, _rehasher); } -inline ::flatbuffers::Offset<ModelTestData> CreateModelTestData( - ::flatbuffers::FlatBufferBuilder& _fbb, const ModelTestDataT* _o, - const ::flatbuffers::rehasher_function_t* _rehasher) { +inline ::flatbuffers::Offset<ModelTestData> CreateModelTestData(::flatbuffers::FlatBufferBuilder &_fbb, const ModelTestDataT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { - ::flatbuffers::FlatBufferBuilder* __fbb; - const ModelTestDataT* __o; - const ::flatbuffers::rehasher_function_t* __rehasher; - } _va = {&_fbb, _o, _rehasher}; - (void)_va; - auto _input_data = - _o->input_data.size() - ? _fbb.CreateVector<::flatbuffers::Offset<TensorData>>( - _o->input_data.size(), - [](size_t i, _VectorArgs* __va) { - return CreateTensorData(*__va->__fbb, - __va->__o->input_data[i].get(), - __va->__rehasher); - }, - &_va) - : 0; - auto _subgraph_data = - _o->subgraph_data.size() - ? _fbb.CreateVector<::flatbuffers::Offset<SubgraphData>>( - _o->subgraph_data.size(), - [](size_t i, _VectorArgs* __va) { - return CreateSubgraphData(*__va->__fbb, - __va->__o->subgraph_data[i].get(), - __va->__rehasher); - }, - &_va) - : 0; - return CreateModelTestData(_fbb, _input_data, _subgraph_data); + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const ModelTestDataT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _input_data = _o->input_data.size() ? _fbb.CreateVector<::flatbuffers::Offset<TensorData>> (_o->input_data.size(), [](size_t i, _VectorArgs *__va) { return CreateTensorData(*__va->__fbb, __va->__o->input_data[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _subgraph_data = _o->subgraph_data.size() ? _fbb.CreateVector<::flatbuffers::Offset<SubgraphData>> (_o->subgraph_data.size(), [](size_t i, _VectorArgs *__va) { return CreateSubgraphData(*__va->__fbb, __va->__o->subgraph_data[i].get(), __va->__rehasher); }, &_va ) : 0; + return CreateModelTestData( + _fbb, + _input_data, + _subgraph_data); } -inline const ModelTestData* GetModelTestData(const void* buf) { +inline const ModelTestData *GetModelTestData(const void *buf) { return ::flatbuffers::GetRoot<ModelTestData>(buf); } -inline const ModelTestData* GetSizePrefixedModelTestData(const void* buf) { +inline const ModelTestData *GetSizePrefixedModelTestData(const void *buf) { return ::flatbuffers::GetSizePrefixedRoot<ModelTestData>(buf); } -inline bool VerifyModelTestDataBuffer(::flatbuffers::Verifier& verifier) { +inline bool VerifyModelTestDataBuffer( + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer<ModelTestData>(nullptr); } inline bool VerifySizePrefixedModelTestDataBuffer( - ::flatbuffers::Verifier& verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer<ModelTestData>(nullptr); } inline void FinishModelTestDataBuffer( - ::flatbuffers::FlatBufferBuilder& fbb, + ::flatbuffers::FlatBufferBuilder &fbb, ::flatbuffers::Offset<ModelTestData> root) { fbb.Finish(root); } inline void FinishSizePrefixedModelTestDataBuffer( - ::flatbuffers::FlatBufferBuilder& fbb, + ::flatbuffers::FlatBufferBuilder &fbb, ::flatbuffers::Offset<ModelTestData> root) { fbb.FinishSizePrefixed(root); } inline std::unique_ptr<ModelTestDataT> UnPackModelTestData( - const void* buf, const ::flatbuffers::resolver_function_t* res = nullptr) { + const void *buf, + const ::flatbuffers::resolver_function_t *res = nullptr) { return std::unique_ptr<ModelTestDataT>(GetModelTestData(buf)->UnPack(res)); } inline std::unique_ptr<ModelTestDataT> UnPackSizePrefixedModelTestData( - const void* buf, const ::flatbuffers::resolver_function_t* res = nullptr) { - return std::unique_ptr<ModelTestDataT>( - GetSizePrefixedModelTestData(buf)->UnPack(res)); + const void *buf, + const ::flatbuffers::resolver_function_t *res = nullptr) { + return std::unique_ptr<ModelTestDataT>(GetSizePrefixedModelTestData(buf)->UnPack(res)); } #endif // FLATBUFFERS_GENERATED_LAYERBYLAYERSCHEMA_H_
diff --git a/tensorflow/lite/python/schema_py_generated.py b/tensorflow/lite/python/schema_py_generated.py index 994ab39..e3a26ed 100755 --- a/tensorflow/lite/python/schema_py_generated.py +++ b/tensorflow/lite/python/schema_py_generated.py
@@ -26,6 +26,7 @@ UINT32 = 15 UINT16 = 16 INT4 = 17 + BFLOAT16 = 18 class QuantizationDetails(object):
diff --git a/tensorflow/lite/schema/schema.fbs b/tensorflow/lite/schema/schema.fbs index 382462f..fe9ee4c 100644 --- a/tensorflow/lite/schema/schema.fbs +++ b/tensorflow/lite/schema/schema.fbs
@@ -58,6 +58,7 @@ UINT32 = 15, UINT16 = 16, INT4 = 17, + BFLOAT16 = 18, } // Custom quantization parameters for experimenting with new quantization
diff --git a/tensorflow/lite/schema/schema_generated.h b/tensorflow/lite/schema/schema_generated.h index 758e6ee..a420de0 100755 --- a/tensorflow/lite/schema/schema_generated.h +++ b/tensorflow/lite/schema/schema_generated.h
@@ -686,11 +686,12 @@ TensorType_UINT32 = 15, TensorType_UINT16 = 16, TensorType_INT4 = 17, + TensorType_BFLOAT16 = 18, TensorType_MIN = TensorType_FLOAT32, - TensorType_MAX = TensorType_INT4 + TensorType_MAX = TensorType_BFLOAT16 }; -inline const TensorType (&EnumValuesTensorType())[18] { +inline const TensorType (&EnumValuesTensorType())[19] { static const TensorType values[] = { TensorType_FLOAT32, TensorType_FLOAT16, @@ -709,13 +710,14 @@ TensorType_VARIANT, TensorType_UINT32, TensorType_UINT16, - TensorType_INT4 + TensorType_INT4, + TensorType_BFLOAT16 }; return values; } inline const char * const *EnumNamesTensorType() { - static const char * const names[19] = { + static const char * const names[20] = { "FLOAT32", "FLOAT16", "INT32", @@ -734,13 +736,14 @@ "UINT32", "UINT16", "INT4", + "BFLOAT16", nullptr }; return names; } inline const char *EnumNameTensorType(TensorType e) { - if (::flatbuffers::IsOutRange(e, TensorType_FLOAT32, TensorType_INT4)) return ""; + if (::flatbuffers::IsOutRange(e, TensorType_FLOAT32, TensorType_BFLOAT16)) return ""; const size_t index = static_cast<size_t>(e); return EnumNamesTensorType()[index]; }