Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
码匠许师傅
Tflite Micro
提交
4b54460b
T
Tflite Micro
项目概览
码匠许师傅
/
Tflite Micro
11 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Tflite Micro
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
4b54460b
编写于
5月 13, 2022
作者:
T
TFLM-bot
提交者:
GitHub
5月 13, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Sync from upstream TF. (#1133)
上级
e211ce56
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
231 addition
and
11 deletion
+231
-11
tensorflow/lite/builtin_ops.h
tensorflow/lite/builtin_ops.h
+1
-0
tensorflow/lite/c/builtin_op_data.h
tensorflow/lite/c/builtin_op_data.h
+3
-0
tensorflow/lite/core/api/flatbuffer_conversions.cc
tensorflow/lite/core/api/flatbuffer_conversions.cc
+10
-0
tensorflow/lite/python/schema_py_generated.py
tensorflow/lite/python/schema_py_generated.py
+72
-1
tensorflow/lite/schema/schema.fbs
tensorflow/lite/schema/schema.fbs
+6
-0
tensorflow/lite/schema/schema_generated.h
tensorflow/lite/schema/schema_generated.h
+139
-10
未找到文件。
tensorflow/lite/builtin_ops.h
浏览文件 @
4b54460b
...
...
@@ -180,6 +180,7 @@ typedef enum {
kTfLiteBuiltinGelu
=
150
,
kTfLiteBuiltinDynamicUpdateSlice
=
151
,
kTfLiteBuiltinRelu0To1
=
152
,
kTfLiteBuiltinUnsortedSegmentProd
=
153
,
}
TfLiteBuiltinOperator
;
#ifdef __cplusplus
...
...
tensorflow/lite/c/builtin_op_data.h
浏览文件 @
4b54460b
...
...
@@ -518,6 +518,9 @@ typedef struct {
bool
approximate
;
}
TfLiteGeluParams
;
typedef
struct
{
int
num_segments
;
}
TfLiteUnsortedSegmentProdParams
;
#ifdef __cplusplus
}
// extern "C"
#endif // __cplusplus
...
...
tensorflow/lite/core/api/flatbuffer_conversions.cc
浏览文件 @
4b54460b
...
...
@@ -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.
...
...
tensorflow/lite/python/schema_py_generated.py
浏览文件 @
4b54460b
...
...
@@ -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'
]
...
...
tensorflow/lite/schema/schema.fbs
浏览文件 @
4b54460b
...
...
@@ -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 {
...
...
tensorflow/lite/schema/schema_generated.h
浏览文件 @
4b54460b
...
...
@@ -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())[15
3
] {
inline const BuiltinOperator (&EnumValuesBuiltinOperator())[15
4
] {
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[15
4
] = {
static const char * const names[15
5
] = {
"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_
DynamicUpdateSlice
Options
BuiltinOptions_MAX = BuiltinOptions_
UnsortedSegmentProd
Options
};
inline const BuiltinOptions (&EnumValuesBuiltinOptions())[11
8
] {
inline const BuiltinOptions (&EnumValuesBuiltinOptions())[11
9
] {
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[1
19
] = {
static const char * const names[1
20
] = {
"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_
DynamicUpdateSlice
Options)) return "";
if (flatbuffers::IsOutRange(e, BuiltinOptions_NONE, BuiltinOptions_
UnsortedSegmentProd
Options)) 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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录