aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/contrib/lite/schema
diff options
context:
space:
mode:
authorGravatar Jared Duke <jdduke@google.com>2018-06-20 11:48:15 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-06-20 11:51:26 -0700
commit4efefb90391b12c95339ed3b46a02b62ea5e195d (patch)
treebb3f9bb986b89287983ea8e7c35827993aad7206 /tensorflow/contrib/lite/schema
parente51df5918020cdfada26022240091e5529f7da60 (diff)
Implement TFLite Shape operator
PiperOrigin-RevId: 201389618
Diffstat (limited to 'tensorflow/contrib/lite/schema')
-rw-r--r--tensorflow/contrib/lite/schema/schema.fbs7
-rwxr-xr-xtensorflow/contrib/lite/schema/schema_generated.h141
2 files changed, 142 insertions, 6 deletions
diff --git a/tensorflow/contrib/lite/schema/schema.fbs b/tensorflow/contrib/lite/schema/schema.fbs
index 0b127e1c14..df43f1e5ab 100644
--- a/tensorflow/contrib/lite/schema/schema.fbs
+++ b/tensorflow/contrib/lite/schema/schema.fbs
@@ -157,6 +157,7 @@ enum BuiltinOperator : byte {
SUM=74,
SQRT = 75,
RSQRT = 76,
+ SHAPE = 77,
}
// Options for the builtin operators.
@@ -215,6 +216,7 @@ union BuiltinOptions {
ExpandDimsOptions,
EqualOptions,
NotEqualOptions,
+ ShapeOptions,
}
enum Padding : byte { SAME, VALID }
@@ -495,6 +497,11 @@ table EqualOptions {
table NotEqualOptions {
}
+table ShapeOptions {
+ // Optional output type of the operation (int32 or int64). Defaults to int32.
+ out_type : TensorType;
+}
+
// 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 2558625e2d..8c0660dfe2 100755
--- a/tensorflow/contrib/lite/schema/schema_generated.h
+++ b/tensorflow/contrib/lite/schema/schema_generated.h
@@ -193,6 +193,9 @@ struct EqualOptionsT;
struct NotEqualOptions;
struct NotEqualOptionsT;
+struct ShapeOptions;
+struct ShapeOptionsT;
+
struct OperatorCode;
struct OperatorCodeT;
@@ -332,11 +335,12 @@ enum BuiltinOperator {
BuiltinOperator_SUM = 74,
BuiltinOperator_SQRT = 75,
BuiltinOperator_RSQRT = 76,
+ BuiltinOperator_SHAPE = 77,
BuiltinOperator_MIN = BuiltinOperator_ADD,
- BuiltinOperator_MAX = BuiltinOperator_RSQRT
+ BuiltinOperator_MAX = BuiltinOperator_SHAPE
};
-inline BuiltinOperator (&EnumValuesBuiltinOperator())[76] {
+inline BuiltinOperator (&EnumValuesBuiltinOperator())[77] {
static BuiltinOperator values[] = {
BuiltinOperator_ADD,
BuiltinOperator_AVERAGE_POOL_2D,
@@ -413,7 +417,8 @@ inline BuiltinOperator (&EnumValuesBuiltinOperator())[76] {
BuiltinOperator_LOG,
BuiltinOperator_SUM,
BuiltinOperator_SQRT,
- BuiltinOperator_RSQRT
+ BuiltinOperator_RSQRT,
+ BuiltinOperator_SHAPE
};
return values;
}
@@ -497,6 +502,7 @@ inline const char **EnumNamesBuiltinOperator() {
"SUM",
"SQRT",
"RSQRT",
+ "SHAPE",
nullptr
};
return names;
@@ -563,11 +569,12 @@ enum BuiltinOptions {
BuiltinOptions_ExpandDimsOptions = 52,
BuiltinOptions_EqualOptions = 53,
BuiltinOptions_NotEqualOptions = 54,
+ BuiltinOptions_ShapeOptions = 55,
BuiltinOptions_MIN = BuiltinOptions_NONE,
- BuiltinOptions_MAX = BuiltinOptions_NotEqualOptions
+ BuiltinOptions_MAX = BuiltinOptions_ShapeOptions
};
-inline BuiltinOptions (&EnumValuesBuiltinOptions())[55] {
+inline BuiltinOptions (&EnumValuesBuiltinOptions())[56] {
static BuiltinOptions values[] = {
BuiltinOptions_NONE,
BuiltinOptions_Conv2DOptions,
@@ -623,7 +630,8 @@ inline BuiltinOptions (&EnumValuesBuiltinOptions())[55] {
BuiltinOptions_TileOptions,
BuiltinOptions_ExpandDimsOptions,
BuiltinOptions_EqualOptions,
- BuiltinOptions_NotEqualOptions
+ BuiltinOptions_NotEqualOptions,
+ BuiltinOptions_ShapeOptions
};
return values;
}
@@ -685,6 +693,7 @@ inline const char **EnumNamesBuiltinOptions() {
"ExpandDimsOptions",
"EqualOptions",
"NotEqualOptions",
+ "ShapeOptions",
nullptr
};
return names;
@@ -915,6 +924,10 @@ template<> struct BuiltinOptionsTraits<NotEqualOptions> {
static const BuiltinOptions enum_value = BuiltinOptions_NotEqualOptions;
};
+template<> struct BuiltinOptionsTraits<ShapeOptions> {
+ static const BuiltinOptions enum_value = BuiltinOptions_ShapeOptions;
+};
+
struct BuiltinOptionsUnion {
BuiltinOptions type;
void *value;
@@ -1378,6 +1391,14 @@ struct BuiltinOptionsUnion {
return type == BuiltinOptions_NotEqualOptions ?
reinterpret_cast<const NotEqualOptionsT *>(value) : nullptr;
}
+ ShapeOptionsT *AsShapeOptions() {
+ return type == BuiltinOptions_ShapeOptions ?
+ reinterpret_cast<ShapeOptionsT *>(value) : nullptr;
+ }
+ const ShapeOptionsT *AsShapeOptions() const {
+ return type == BuiltinOptions_ShapeOptions ?
+ reinterpret_cast<const ShapeOptionsT *>(value) : nullptr;
+ }
};
bool VerifyBuiltinOptions(flatbuffers::Verifier &verifier, const void *obj, BuiltinOptions type);
@@ -4932,6 +4953,60 @@ inline flatbuffers::Offset<NotEqualOptions> CreateNotEqualOptions(
flatbuffers::Offset<NotEqualOptions> CreateNotEqualOptions(flatbuffers::FlatBufferBuilder &_fbb, const NotEqualOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
+struct ShapeOptionsT : public flatbuffers::NativeTable {
+ typedef ShapeOptions TableType;
+ TensorType out_type;
+ ShapeOptionsT()
+ : out_type(TensorType_FLOAT32) {
+ }
+};
+
+struct ShapeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
+ typedef ShapeOptionsT NativeTableType;
+ enum {
+ VT_OUT_TYPE = 4
+ };
+ TensorType out_type() const {
+ return static_cast<TensorType>(GetField<int8_t>(VT_OUT_TYPE, 0));
+ }
+ bool Verify(flatbuffers::Verifier &verifier) const {
+ return VerifyTableStart(verifier) &&
+ VerifyField<int8_t>(verifier, VT_OUT_TYPE) &&
+ verifier.EndTable();
+ }
+ ShapeOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
+ void UnPackTo(ShapeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
+ static flatbuffers::Offset<ShapeOptions> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ShapeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
+};
+
+struct ShapeOptionsBuilder {
+ flatbuffers::FlatBufferBuilder &fbb_;
+ flatbuffers::uoffset_t start_;
+ void add_out_type(TensorType out_type) {
+ fbb_.AddElement<int8_t>(ShapeOptions::VT_OUT_TYPE, static_cast<int8_t>(out_type), 0);
+ }
+ explicit ShapeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
+ : fbb_(_fbb) {
+ start_ = fbb_.StartTable();
+ }
+ ShapeOptionsBuilder &operator=(const ShapeOptionsBuilder &);
+ flatbuffers::Offset<ShapeOptions> Finish() {
+ const auto end = fbb_.EndTable(start_);
+ auto o = flatbuffers::Offset<ShapeOptions>(end);
+ return o;
+ }
+};
+
+inline flatbuffers::Offset<ShapeOptions> CreateShapeOptions(
+ flatbuffers::FlatBufferBuilder &_fbb,
+ TensorType out_type = TensorType_FLOAT32) {
+ ShapeOptionsBuilder builder_(_fbb);
+ builder_.add_out_type(out_type);
+ return builder_.Finish();
+}
+
+flatbuffers::Offset<ShapeOptions> CreateShapeOptions(flatbuffers::FlatBufferBuilder &_fbb, const ShapeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
+
struct OperatorCodeT : public flatbuffers::NativeTable {
typedef OperatorCode TableType;
BuiltinOperator builtin_code;
@@ -5227,6 +5302,9 @@ struct Operator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
const NotEqualOptions *builtin_options_as_NotEqualOptions() const {
return builtin_options_type() == BuiltinOptions_NotEqualOptions ? static_cast<const NotEqualOptions *>(builtin_options()) : nullptr;
}
+ const ShapeOptions *builtin_options_as_ShapeOptions() const {
+ return builtin_options_type() == BuiltinOptions_ShapeOptions ? static_cast<const ShapeOptions *>(builtin_options()) : nullptr;
+ }
const flatbuffers::Vector<uint8_t> *custom_options() const {
return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_CUSTOM_OPTIONS);
}
@@ -5474,6 +5552,10 @@ template<> inline const NotEqualOptions *Operator::builtin_options_as<NotEqualOp
return builtin_options_as_NotEqualOptions();
}
+template<> inline const ShapeOptions *Operator::builtin_options_as<ShapeOptions>() const {
+ return builtin_options_as_ShapeOptions();
+}
+
struct OperatorBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
@@ -7424,6 +7506,32 @@ inline flatbuffers::Offset<NotEqualOptions> CreateNotEqualOptions(flatbuffers::F
_fbb);
}
+inline ShapeOptionsT *ShapeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
+ auto _o = new ShapeOptionsT();
+ UnPackTo(_o, _resolver);
+ return _o;
+}
+
+inline void ShapeOptions::UnPackTo(ShapeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
+ (void)_o;
+ (void)_resolver;
+ { auto _e = out_type(); _o->out_type = _e; };
+}
+
+inline flatbuffers::Offset<ShapeOptions> ShapeOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ShapeOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
+ return CreateShapeOptions(_fbb, _o, _rehasher);
+}
+
+inline flatbuffers::Offset<ShapeOptions> CreateShapeOptions(flatbuffers::FlatBufferBuilder &_fbb, const ShapeOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
+ (void)_rehasher;
+ (void)_o;
+ struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ShapeOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
+ auto _out_type = _o->out_type;
+ return tflite::CreateShapeOptions(
+ _fbb,
+ _out_type);
+}
+
inline OperatorCodeT *OperatorCode::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
auto _o = new OperatorCodeT();
UnPackTo(_o, _resolver);
@@ -7829,6 +7937,10 @@ inline bool VerifyBuiltinOptions(flatbuffers::Verifier &verifier, const void *ob
auto ptr = reinterpret_cast<const NotEqualOptions *>(obj);
return verifier.VerifyTable(ptr);
}
+ case BuiltinOptions_ShapeOptions: {
+ auto ptr = reinterpret_cast<const ShapeOptions *>(obj);
+ return verifier.VerifyTable(ptr);
+ }
default: return false;
}
}
@@ -8063,6 +8175,10 @@ inline void *BuiltinOptionsUnion::UnPack(const void *obj, BuiltinOptions type, c
auto ptr = reinterpret_cast<const NotEqualOptions *>(obj);
return ptr->UnPack(resolver);
}
+ case BuiltinOptions_ShapeOptions: {
+ auto ptr = reinterpret_cast<const ShapeOptions *>(obj);
+ return ptr->UnPack(resolver);
+ }
default: return nullptr;
}
}
@@ -8285,6 +8401,10 @@ inline flatbuffers::Offset<void> BuiltinOptionsUnion::Pack(flatbuffers::FlatBuff
auto ptr = reinterpret_cast<const NotEqualOptionsT *>(value);
return CreateNotEqualOptions(_fbb, ptr, _rehasher).Union();
}
+ case BuiltinOptions_ShapeOptions: {
+ auto ptr = reinterpret_cast<const ShapeOptionsT *>(value);
+ return CreateShapeOptions(_fbb, ptr, _rehasher).Union();
+ }
default: return 0;
}
}
@@ -8507,6 +8627,10 @@ inline BuiltinOptionsUnion::BuiltinOptionsUnion(const BuiltinOptionsUnion &u) FL
value = new NotEqualOptionsT(*reinterpret_cast<NotEqualOptionsT *>(u.value));
break;
}
+ case BuiltinOptions_ShapeOptions: {
+ value = new ShapeOptionsT(*reinterpret_cast<ShapeOptionsT *>(u.value));
+ break;
+ }
default:
break;
}
@@ -8784,6 +8908,11 @@ inline void BuiltinOptionsUnion::Reset() {
delete ptr;
break;
}
+ case BuiltinOptions_ShapeOptions: {
+ auto ptr = reinterpret_cast<ShapeOptionsT *>(value);
+ delete ptr;
+ break;
+ }
default: break;
}
value = nullptr;