未验证 提交 4b54460b 编写于 作者: T TFLM-bot 提交者: GitHub

Sync from upstream TF. (#1133)

上级 e211ce56
......@@ -180,6 +180,7 @@ typedef enum {
kTfLiteBuiltinGelu = 150,
kTfLiteBuiltinDynamicUpdateSlice = 151,
kTfLiteBuiltinRelu0To1 = 152,
kTfLiteBuiltinUnsortedSegmentProd = 153,
} TfLiteBuiltinOperator;
#ifdef __cplusplus
......
......@@ -518,6 +518,9 @@ typedef struct {
bool approximate;
} TfLiteGeluParams;
typedef struct {
int num_segments;
} TfLiteUnsortedSegmentProdParams;
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
......
......@@ -836,6 +836,16 @@ TfLiteStatus ParseOpDataTfLite(const Operator* op, BuiltinOperator op_type,
*builtin_data = params.release();
return kTfLiteOk;
}
case BuiltinOperator_UNSORTED_SEGMENT_PROD: {
auto params = safe_allocator.Allocate<TfLiteUnsortedSegmentProdParams>();
TF_LITE_ENSURE(error_reporter, params != nullptr);
if (const auto* unsorted_segment_prod_params =
op->builtin_options_as_UnsortedSegmentProdOptions()) {
params->num_segments = unsorted_segment_prod_params->num_segments();
}
*builtin_data = params.release();
return kTfLiteOk;
}
// Below are the ops with no builtin_data structure.
// TODO(aselle): Implement call in BuiltinOptions, but nullptrs are
// ok for now, since there is no call implementation either.
......
......@@ -1192,6 +1192,7 @@ class BuiltinOperator(object):
GELU = 150
DYNAMIC_UPDATE_SLICE = 151
RELU_0_TO_1 = 152
UNSORTED_SEGMENT_PROD = 153
# automatically generated by the FlatBuffers compiler, do not modify
......@@ -1316,6 +1317,7 @@ class BuiltinOptions(object):
BucketizeOptions = 115
GeluOptions = 116
DynamicUpdateSliceOptions = 117
UnsortedSegmentProdOptions = 118
def BuiltinOptionsCreator(unionType, table):
......@@ -1556,6 +1558,8 @@ def BuiltinOptionsCreator(unionType, table):
return GeluOptionsT.InitFromBuf(table.Bytes, table.Pos)
if unionType == BuiltinOptions().DynamicUpdateSliceOptions:
return DynamicUpdateSliceOptionsT.InitFromBuf(table.Bytes, table.Pos)
if unionType == BuiltinOptions().UnsortedSegmentProdOptions:
return UnsortedSegmentProdOptionsT.InitFromBuf(table.Bytes, table.Pos)
return None
# automatically generated by the FlatBuffers compiler, do not modify
......@@ -6593,7 +6597,7 @@ class OperatorT(object):
self.inputs = None # type: List[int]
self.outputs = None # type: List[int]
self.builtinOptionsType = 0 # type: int
self.builtinOptions = None # type: Union[None, Conv2DOptionsT, DepthwiseConv2DOptionsT, ConcatEmbeddingsOptionsT, LSHProjectionOptionsT, Pool2DOptionsT, SVDFOptionsT, RNNOptionsT, FullyConnectedOptionsT, SoftmaxOptionsT, ConcatenationOptionsT, AddOptionsT, L2NormOptionsT, LocalResponseNormalizationOptionsT, LSTMOptionsT, ResizeBilinearOptionsT, CallOptionsT, ReshapeOptionsT, SkipGramOptionsT, SpaceToDepthOptionsT, EmbeddingLookupSparseOptionsT, MulOptionsT, PadOptionsT, GatherOptionsT, BatchToSpaceNDOptionsT, SpaceToBatchNDOptionsT, TransposeOptionsT, ReducerOptionsT, SubOptionsT, DivOptionsT, SqueezeOptionsT, SequenceRNNOptionsT, StridedSliceOptionsT, ExpOptionsT, TopKV2OptionsT, SplitOptionsT, LogSoftmaxOptionsT, CastOptionsT, DequantizeOptionsT, MaximumMinimumOptionsT, ArgMaxOptionsT, LessOptionsT, NegOptionsT, PadV2OptionsT, GreaterOptionsT, GreaterEqualOptionsT, LessEqualOptionsT, SelectOptionsT, SliceOptionsT, TransposeConvOptionsT, SparseToDenseOptionsT, TileOptionsT, ExpandDimsOptionsT, EqualOptionsT, NotEqualOptionsT, ShapeOptionsT, PowOptionsT, ArgMinOptionsT, FakeQuantOptionsT, PackOptionsT, LogicalOrOptionsT, OneHotOptionsT, LogicalAndOptionsT, LogicalNotOptionsT, UnpackOptionsT, FloorDivOptionsT, SquareOptionsT, ZerosLikeOptionsT, FillOptionsT, BidirectionalSequenceLSTMOptionsT, BidirectionalSequenceRNNOptionsT, UnidirectionalSequenceLSTMOptionsT, FloorModOptionsT, RangeOptionsT, ResizeNearestNeighborOptionsT, LeakyReluOptionsT, SquaredDifferenceOptionsT, MirrorPadOptionsT, AbsOptionsT, SplitVOptionsT, UniqueOptionsT, ReverseV2OptionsT, AddNOptionsT, GatherNdOptionsT, CosOptionsT, WhereOptionsT, RankOptionsT, ReverseSequenceOptionsT, MatrixDiagOptionsT, QuantizeOptionsT, MatrixSetDiagOptionsT, HardSwishOptionsT, IfOptionsT, WhileOptionsT, DepthToSpaceOptionsT, NonMaxSuppressionV4OptionsT, NonMaxSuppressionV5OptionsT, ScatterNdOptionsT, SelectV2OptionsT, DensifyOptionsT, SegmentSumOptionsT, BatchMatMulOptionsT, CumsumOptionsT, CallOnceOptionsT, BroadcastToOptionsT, Rfft2dOptionsT, Conv3DOptionsT, HashtableOptionsT, HashtableFindOptionsT, HashtableImportOptionsT, HashtableSizeOptionsT, VarHandleOptionsT, ReadVariableOptionsT, AssignVariableOptionsT, RandomOptionsT, BucketizeOptionsT, GeluOptionsT, DynamicUpdateSliceOptionsT]
self.builtinOptions = None # type: Union[None, Conv2DOptionsT, DepthwiseConv2DOptionsT, ConcatEmbeddingsOptionsT, LSHProjectionOptionsT, Pool2DOptionsT, SVDFOptionsT, RNNOptionsT, FullyConnectedOptionsT, SoftmaxOptionsT, ConcatenationOptionsT, AddOptionsT, L2NormOptionsT, LocalResponseNormalizationOptionsT, LSTMOptionsT, ResizeBilinearOptionsT, CallOptionsT, ReshapeOptionsT, SkipGramOptionsT, SpaceToDepthOptionsT, EmbeddingLookupSparseOptionsT, MulOptionsT, PadOptionsT, GatherOptionsT, BatchToSpaceNDOptionsT, SpaceToBatchNDOptionsT, TransposeOptionsT, ReducerOptionsT, SubOptionsT, DivOptionsT, SqueezeOptionsT, SequenceRNNOptionsT, StridedSliceOptionsT, ExpOptionsT, TopKV2OptionsT, SplitOptionsT, LogSoftmaxOptionsT, CastOptionsT, DequantizeOptionsT, MaximumMinimumOptionsT, ArgMaxOptionsT, LessOptionsT, NegOptionsT, PadV2OptionsT, GreaterOptionsT, GreaterEqualOptionsT, LessEqualOptionsT, SelectOptionsT, SliceOptionsT, TransposeConvOptionsT, SparseToDenseOptionsT, TileOptionsT, ExpandDimsOptionsT, EqualOptionsT, NotEqualOptionsT, ShapeOptionsT, PowOptionsT, ArgMinOptionsT, FakeQuantOptionsT, PackOptionsT, LogicalOrOptionsT, OneHotOptionsT, LogicalAndOptionsT, LogicalNotOptionsT, UnpackOptionsT, FloorDivOptionsT, SquareOptionsT, ZerosLikeOptionsT, FillOptionsT, BidirectionalSequenceLSTMOptionsT, BidirectionalSequenceRNNOptionsT, UnidirectionalSequenceLSTMOptionsT, FloorModOptionsT, RangeOptionsT, ResizeNearestNeighborOptionsT, LeakyReluOptionsT, SquaredDifferenceOptionsT, MirrorPadOptionsT, AbsOptionsT, SplitVOptionsT, UniqueOptionsT, ReverseV2OptionsT, AddNOptionsT, GatherNdOptionsT, CosOptionsT, WhereOptionsT, RankOptionsT, ReverseSequenceOptionsT, MatrixDiagOptionsT, QuantizeOptionsT, MatrixSetDiagOptionsT, HardSwishOptionsT, IfOptionsT, WhileOptionsT, DepthToSpaceOptionsT, NonMaxSuppressionV4OptionsT, NonMaxSuppressionV5OptionsT, ScatterNdOptionsT, SelectV2OptionsT, DensifyOptionsT, SegmentSumOptionsT, BatchMatMulOptionsT, CumsumOptionsT, CallOnceOptionsT, BroadcastToOptionsT, Rfft2dOptionsT, Conv3DOptionsT, HashtableOptionsT, HashtableFindOptionsT, HashtableImportOptionsT, HashtableSizeOptionsT, VarHandleOptionsT, ReadVariableOptionsT, AssignVariableOptionsT, RandomOptionsT, BucketizeOptionsT, GeluOptionsT, DynamicUpdateSliceOptionsT, UnsortedSegmentProdOptionsT]
self.customOptions = None # type: List[int]
self.customOptionsFormat = 0 # type: int
self.mutatingVariableInputs = None # type: List[bool]
......@@ -11561,6 +11565,73 @@ class UnpackOptionsT(object):
from flatbuffers.compat import import_numpy
np = import_numpy()
class UnsortedSegmentProdOptions(object):
__slots__ = ['_tab']
@classmethod
def GetRootAsUnsortedSegmentProdOptions(cls, buf, offset):
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
x = UnsortedSegmentProdOptions()
x.Init(buf, n + offset)
return x
@classmethod
def UnsortedSegmentProdOptionsBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x46\x4C\x33", size_prefixed=size_prefixed)
# UnsortedSegmentProdOptions
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
# UnsortedSegmentProdOptions
def NumSegments(self):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
if o != 0:
return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos)
return 0
def UnsortedSegmentProdOptionsStart(builder): builder.StartObject(1)
def UnsortedSegmentProdOptionsAddNumSegments(builder, numSegments): builder.PrependInt32Slot(0, numSegments, 0)
def UnsortedSegmentProdOptionsEnd(builder): return builder.EndObject()
class UnsortedSegmentProdOptionsT(object):
# UnsortedSegmentProdOptionsT
def __init__(self):
self.numSegments = 0 # type: int
@classmethod
def InitFromBuf(cls, buf, pos):
unsortedSegmentProdOptions = UnsortedSegmentProdOptions()
unsortedSegmentProdOptions.Init(buf, pos)
return cls.InitFromObj(unsortedSegmentProdOptions)
@classmethod
def InitFromObj(cls, unsortedSegmentProdOptions):
x = UnsortedSegmentProdOptionsT()
x._UnPack(unsortedSegmentProdOptions)
return x
# UnsortedSegmentProdOptionsT
def _UnPack(self, unsortedSegmentProdOptions):
if unsortedSegmentProdOptions is None:
return
self.numSegments = unsortedSegmentProdOptions.NumSegments()
# UnsortedSegmentProdOptionsT
def Pack(self, builder):
UnsortedSegmentProdOptionsStart(builder)
UnsortedSegmentProdOptionsAddNumSegments(builder, self.numSegments)
unsortedSegmentProdOptions = UnsortedSegmentProdOptionsEnd(builder)
return unsortedSegmentProdOptions
# automatically generated by the FlatBuffers compiler, do not modify
# namespace: tflite
from flatbuffers.compat import import_numpy
np = import_numpy()
class VarHandleOptions(object):
__slots__ = ['_tab']
......
......@@ -387,6 +387,7 @@ enum BuiltinOperator : int32 {
GELU = 150,
DYNAMIC_UPDATE_SLICE = 151,
RELU_0_TO_1 = 152,
UNSORTED_SEGMENT_PROD = 153,
}
// LINT.ThenChange(nnapi_linter/linter.proto)
......@@ -509,6 +510,7 @@ union BuiltinOptions {
BucketizeOptions,
GeluOptions,
DynamicUpdateSliceOptions,
UnsortedSegmentProdOptions,
}
// LINT.IfChange
......@@ -1120,6 +1122,10 @@ table GeluOptions {
table DynamicUpdateSliceOptions {
}
table UnsortedSegmentProdOptions {
num_segments: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 {
......
......@@ -397,6 +397,9 @@ struct GeluOptionsT;
struct DynamicUpdateSliceOptions;
struct DynamicUpdateSliceOptionsT;
struct UnsortedSegmentProdOptions;
struct UnsortedSegmentProdOptionsT;
struct OperatorCode;
struct OperatorCodeT;
......@@ -876,11 +879,12 @@ enum BuiltinOperator {
BuiltinOperator_GELU = 150,
BuiltinOperator_DYNAMIC_UPDATE_SLICE = 151,
BuiltinOperator_RELU_0_TO_1 = 152,
BuiltinOperator_UNSORTED_SEGMENT_PROD = 153,
BuiltinOperator_MIN = BuiltinOperator_ADD,
BuiltinOperator_MAX = BuiltinOperator_RELU_0_TO_1
BuiltinOperator_MAX = BuiltinOperator_UNSORTED_SEGMENT_PROD
};
inline const BuiltinOperator (&EnumValuesBuiltinOperator())[153] {
inline const BuiltinOperator (&EnumValuesBuiltinOperator())[154] {
static const BuiltinOperator values[] = {
BuiltinOperator_ADD,
BuiltinOperator_AVERAGE_POOL_2D,
......@@ -1034,13 +1038,14 @@ inline const BuiltinOperator (&EnumValuesBuiltinOperator())[153] {
BuiltinOperator_MULTINOMIAL,
BuiltinOperator_GELU,
BuiltinOperator_DYNAMIC_UPDATE_SLICE,
BuiltinOperator_RELU_0_TO_1
BuiltinOperator_RELU_0_TO_1,
BuiltinOperator_UNSORTED_SEGMENT_PROD
};
return values;
}
inline const char * const *EnumNamesBuiltinOperator() {
static const char * const names[154] = {
static const char * const names[155] = {
"ADD",
"AVERAGE_POOL_2D",
"CONCATENATION",
......@@ -1194,13 +1199,14 @@ inline const char * const *EnumNamesBuiltinOperator() {
"GELU",
"DYNAMIC_UPDATE_SLICE",
"RELU_0_TO_1",
"UNSORTED_SEGMENT_PROD",
nullptr
};
return names;
}
inline const char *EnumNameBuiltinOperator(BuiltinOperator e) {
if (flatbuffers::IsOutRange(e, BuiltinOperator_ADD, BuiltinOperator_RELU_0_TO_1)) return "";
if (flatbuffers::IsOutRange(e, BuiltinOperator_ADD, BuiltinOperator_UNSORTED_SEGMENT_PROD)) return "";
const size_t index = static_cast<size_t>(e);
return EnumNamesBuiltinOperator()[index];
}
......@@ -1324,11 +1330,12 @@ enum BuiltinOptions {
BuiltinOptions_BucketizeOptions = 115,
BuiltinOptions_GeluOptions = 116,
BuiltinOptions_DynamicUpdateSliceOptions = 117,
BuiltinOptions_UnsortedSegmentProdOptions = 118,
BuiltinOptions_MIN = BuiltinOptions_NONE,
BuiltinOptions_MAX = BuiltinOptions_DynamicUpdateSliceOptions
BuiltinOptions_MAX = BuiltinOptions_UnsortedSegmentProdOptions
};
inline const BuiltinOptions (&EnumValuesBuiltinOptions())[118] {
inline const BuiltinOptions (&EnumValuesBuiltinOptions())[119] {
static const BuiltinOptions values[] = {
BuiltinOptions_NONE,
BuiltinOptions_Conv2DOptions,
......@@ -1447,13 +1454,14 @@ inline const BuiltinOptions (&EnumValuesBuiltinOptions())[118] {
BuiltinOptions_RandomOptions,
BuiltinOptions_BucketizeOptions,
BuiltinOptions_GeluOptions,
BuiltinOptions_DynamicUpdateSliceOptions
BuiltinOptions_DynamicUpdateSliceOptions,
BuiltinOptions_UnsortedSegmentProdOptions
};
return values;
}
inline const char * const *EnumNamesBuiltinOptions() {
static const char * const names[119] = {
static const char * const names[120] = {
"NONE",
"Conv2DOptions",
"DepthwiseConv2DOptions",
......@@ -1572,13 +1580,14 @@ inline const char * const *EnumNamesBuiltinOptions() {
"BucketizeOptions",
"GeluOptions",
"DynamicUpdateSliceOptions",
"UnsortedSegmentProdOptions",
nullptr
};
return names;
}
inline const char *EnumNameBuiltinOptions(BuiltinOptions e) {
if (flatbuffers::IsOutRange(e, BuiltinOptions_NONE, BuiltinOptions_DynamicUpdateSliceOptions)) return "";
if (flatbuffers::IsOutRange(e, BuiltinOptions_NONE, BuiltinOptions_UnsortedSegmentProdOptions)) return "";
const size_t index = static_cast<size_t>(e);
return EnumNamesBuiltinOptions()[index];
}
......@@ -2055,6 +2064,10 @@ template<> struct BuiltinOptionsTraits<tflite::DynamicUpdateSliceOptions> {
static const BuiltinOptions enum_value = BuiltinOptions_DynamicUpdateSliceOptions;
};
template<> struct BuiltinOptionsTraits<tflite::UnsortedSegmentProdOptions> {
static const BuiltinOptions enum_value = BuiltinOptions_UnsortedSegmentProdOptions;
};
struct BuiltinOptionsUnion {
BuiltinOptions type;
void *value;
......@@ -3023,6 +3036,14 @@ struct BuiltinOptionsUnion {
return type == BuiltinOptions_DynamicUpdateSliceOptions ?
reinterpret_cast<const tflite::DynamicUpdateSliceOptionsT *>(value) : nullptr;
}
tflite::UnsortedSegmentProdOptionsT *AsUnsortedSegmentProdOptions() {
return type == BuiltinOptions_UnsortedSegmentProdOptions ?
reinterpret_cast<tflite::UnsortedSegmentProdOptionsT *>(value) : nullptr;
}
const tflite::UnsortedSegmentProdOptionsT *AsUnsortedSegmentProdOptions() const {
return type == BuiltinOptions_UnsortedSegmentProdOptions ?
reinterpret_cast<const tflite::UnsortedSegmentProdOptionsT *>(value) : nullptr;
}
};
bool VerifyBuiltinOptions(flatbuffers::Verifier &verifier, const void *obj, BuiltinOptions type);
......@@ -10662,6 +10683,60 @@ inline flatbuffers::Offset<DynamicUpdateSliceOptions> CreateDynamicUpdateSliceOp
flatbuffers::Offset<DynamicUpdateSliceOptions> CreateDynamicUpdateSliceOptions(flatbuffers::FlatBufferBuilder &_fbb, const DynamicUpdateSliceOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
struct UnsortedSegmentProdOptionsT : public flatbuffers::NativeTable {
typedef UnsortedSegmentProdOptions TableType;
int32_t num_segments;
UnsortedSegmentProdOptionsT()
: num_segments(0) {
}
};
struct UnsortedSegmentProdOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
typedef UnsortedSegmentProdOptionsT NativeTableType;
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
VT_NUM_SEGMENTS = 4
};
int32_t num_segments() const {
return GetField<int32_t>(VT_NUM_SEGMENTS, 0);
}
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<int32_t>(verifier, VT_NUM_SEGMENTS) &&
verifier.EndTable();
}
UnsortedSegmentProdOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
void UnPackTo(UnsortedSegmentProdOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
static flatbuffers::Offset<UnsortedSegmentProdOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const UnsortedSegmentProdOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
};
struct UnsortedSegmentProdOptionsBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
void add_num_segments(int32_t num_segments) {
fbb_.AddElement<int32_t>(UnsortedSegmentProdOptions::VT_NUM_SEGMENTS, num_segments, 0);
}
explicit UnsortedSegmentProdOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
}
UnsortedSegmentProdOptionsBuilder &operator=(const UnsortedSegmentProdOptionsBuilder &);
flatbuffers::Offset<UnsortedSegmentProdOptions> Finish() {
const auto end = fbb_.EndTable(start_);
auto o = flatbuffers::Offset<UnsortedSegmentProdOptions>(end);
return o;
}
};
inline flatbuffers::Offset<UnsortedSegmentProdOptions> CreateUnsortedSegmentProdOptions(
flatbuffers::FlatBufferBuilder &_fbb,
int32_t num_segments = 0) {
UnsortedSegmentProdOptionsBuilder builder_(_fbb);
builder_.add_num_segments(num_segments);
return builder_.Finish();
}
flatbuffers::Offset<UnsortedSegmentProdOptions> CreateUnsortedSegmentProdOptions(flatbuffers::FlatBufferBuilder &_fbb, const UnsortedSegmentProdOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
struct OperatorCodeT : public flatbuffers::NativeTable {
typedef OperatorCode TableType;
int8_t deprecated_builtin_code;
......@@ -11163,6 +11238,9 @@ struct Operator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
const tflite::DynamicUpdateSliceOptions *builtin_options_as_DynamicUpdateSliceOptions() const {
return builtin_options_type() == tflite::BuiltinOptions_DynamicUpdateSliceOptions ? static_cast<const tflite::DynamicUpdateSliceOptions *>(builtin_options()) : nullptr;
}
const tflite::UnsortedSegmentProdOptions *builtin_options_as_UnsortedSegmentProdOptions() const {
return builtin_options_type() == tflite::BuiltinOptions_UnsortedSegmentProdOptions ? static_cast<const tflite::UnsortedSegmentProdOptions *>(builtin_options()) : nullptr;
}
const flatbuffers::Vector<uint8_t> *custom_options() const {
return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_CUSTOM_OPTIONS);
}
......@@ -11667,6 +11745,10 @@ template<> inline const tflite::DynamicUpdateSliceOptions *Operator::builtin_opt
return builtin_options_as_DynamicUpdateSliceOptions();
}
template<> inline const tflite::UnsortedSegmentProdOptions *Operator::builtin_options_as<tflite::UnsortedSegmentProdOptions>() const {
return builtin_options_as_UnsortedSegmentProdOptions();
}
struct OperatorBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
......@@ -15776,6 +15858,32 @@ inline flatbuffers::Offset<DynamicUpdateSliceOptions> CreateDynamicUpdateSliceOp
_fbb);
}
inline UnsortedSegmentProdOptionsT *UnsortedSegmentProdOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
auto _o = new UnsortedSegmentProdOptionsT();
UnPackTo(_o, _resolver);
return _o;
}
inline void UnsortedSegmentProdOptions::UnPackTo(UnsortedSegmentProdOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
(void)_o;
(void)_resolver;
{ auto _e = num_segments(); _o->num_segments = _e; }
}
inline flatbuffers::Offset<UnsortedSegmentProdOptions> UnsortedSegmentProdOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const UnsortedSegmentProdOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
return CreateUnsortedSegmentProdOptions(_fbb, _o, _rehasher);
}
inline flatbuffers::Offset<UnsortedSegmentProdOptions> CreateUnsortedSegmentProdOptions(flatbuffers::FlatBufferBuilder &_fbb, const UnsortedSegmentProdOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
(void)_rehasher;
(void)_o;
struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const UnsortedSegmentProdOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
auto _num_segments = _o->num_segments;
return tflite::CreateUnsortedSegmentProdOptions(
_fbb,
_num_segments);
}
inline OperatorCodeT *OperatorCode::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
auto _o = new OperatorCodeT();
UnPackTo(_o, _resolver);
......@@ -16719,6 +16827,10 @@ inline bool VerifyBuiltinOptions(flatbuffers::Verifier &verifier, const void *ob
auto ptr = reinterpret_cast<const tflite::DynamicUpdateSliceOptions *>(obj);
return verifier.VerifyTable(ptr);
}
case BuiltinOptions_UnsortedSegmentProdOptions: {
auto ptr = reinterpret_cast<const tflite::UnsortedSegmentProdOptions *>(obj);
return verifier.VerifyTable(ptr);
}
default: return true;
}
}
......@@ -17205,6 +17317,10 @@ inline void *BuiltinOptionsUnion::UnPack(const void *obj, BuiltinOptions type, c
auto ptr = reinterpret_cast<const tflite::DynamicUpdateSliceOptions *>(obj);
return ptr->UnPack(resolver);
}
case BuiltinOptions_UnsortedSegmentProdOptions: {
auto ptr = reinterpret_cast<const tflite::UnsortedSegmentProdOptions *>(obj);
return ptr->UnPack(resolver);
}
default: return nullptr;
}
}
......@@ -17679,6 +17795,10 @@ inline flatbuffers::Offset<void> BuiltinOptionsUnion::Pack(flatbuffers::FlatBuff
auto ptr = reinterpret_cast<const tflite::DynamicUpdateSliceOptionsT *>(value);
return CreateDynamicUpdateSliceOptions(_fbb, ptr, _rehasher).Union();
}
case BuiltinOptions_UnsortedSegmentProdOptions: {
auto ptr = reinterpret_cast<const tflite::UnsortedSegmentProdOptionsT *>(value);
return CreateUnsortedSegmentProdOptions(_fbb, ptr, _rehasher).Union();
}
default: return 0;
}
}
......@@ -18153,6 +18273,10 @@ inline BuiltinOptionsUnion::BuiltinOptionsUnion(const BuiltinOptionsUnion &u) FL
value = new tflite::DynamicUpdateSliceOptionsT(*reinterpret_cast<tflite::DynamicUpdateSliceOptionsT *>(u.value));
break;
}
case BuiltinOptions_UnsortedSegmentProdOptions: {
value = new tflite::UnsortedSegmentProdOptionsT(*reinterpret_cast<tflite::UnsortedSegmentProdOptionsT *>(u.value));
break;
}
default:
break;
}
......@@ -18745,6 +18869,11 @@ inline void BuiltinOptionsUnion::Reset() {
delete ptr;
break;
}
case BuiltinOptions_UnsortedSegmentProdOptions: {
auto ptr = reinterpret_cast<tflite::UnsortedSegmentProdOptionsT *>(value);
delete ptr;
break;
}
default: break;
}
value = nullptr;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册