Skip to content

Commit 3d4e452

Browse files
authored
Sync from tflite-micro. (tensorflow#162)
1 parent 6781e30 commit 3d4e452

File tree

4 files changed

+25
-5
lines changed

4 files changed

+25
-5
lines changed

src/tensorflow/lite/core/api/flatbuffer_conversions.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2160,6 +2160,8 @@ TfLiteStatus ParseUnidirectionalSequenceLSTM(const Operator* op,
21602160
params->time_major = seq_lstm_params->time_major();
21612161
params->asymmetric_quantize_inputs =
21622162
seq_lstm_params->asymmetric_quantize_inputs();
2163+
params->diagonal_recurrent_tensors =
2164+
seq_lstm_params->diagonal_recurrent_tensors();
21632165
}
21642166
*builtin_data = params.release();
21652167
return kTfLiteOk;

src/tensorflow/lite/core/c/builtin_op_data.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,9 @@ typedef struct {
291291

292292
// Parameter for unidirectional sequence RNN version 3.
293293
bool asymmetric_quantize_inputs;
294+
295+
// Parameter for unidirectional sequence RNN version 4.
296+
bool diagonal_recurrent_tensors;
294297
} TfLiteUnidirectionalSequenceLSTMParams;
295298

296299
typedef struct {

src/tensorflow/lite/core/c/common.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -468,8 +468,9 @@ typedef struct TfLiteTensor {
468468
// Optional. Encodes shapes with unknown dimensions with -1. This field is
469469
// only populated when unknown dimensions exist in a read-write tensor (i.e.
470470
// an input or output tensor). (e.g. `dims` contains [1, 1, 1, 3] and
471-
// `dims_signature` contains [1, -1, -1, 3]). Note that this field only
472-
// exists when TF_LITE_STATIC_MEMORY is not defined.
471+
// `dims_signature` contains [1, -1, -1, 3]). If no unknown dimensions exist
472+
// then `dims_signature` is either null, or set to an empty array. Note that
473+
// this field only exists when TF_LITE_STATIC_MEMORY is not defined.
473474
const TfLiteIntArray* dims_signature;
474475
} TfLiteTensor;
475476

src/tensorflow/lite/schema/schema_generated.h

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6449,6 +6449,7 @@ struct UnidirectionalSequenceLSTMOptionsT : public flatbuffers::NativeTable {
64496449
float proj_clip = 0.0f;
64506450
bool time_major = false;
64516451
bool asymmetric_quantize_inputs = false;
6452+
bool diagonal_recurrent_tensors = false;
64526453
};
64536454

64546455
struct UnidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
@@ -6459,7 +6460,8 @@ struct UnidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatb
64596460
VT_CELL_CLIP = 6,
64606461
VT_PROJ_CLIP = 8,
64616462
VT_TIME_MAJOR = 10,
6462-
VT_ASYMMETRIC_QUANTIZE_INPUTS = 12
6463+
VT_ASYMMETRIC_QUANTIZE_INPUTS = 12,
6464+
VT_DIAGONAL_RECURRENT_TENSORS = 14
64636465
};
64646466
tflite::ActivationFunctionType fused_activation_function() const {
64656467
return static_cast<tflite::ActivationFunctionType>(GetField<int8_t>(VT_FUSED_ACTIVATION_FUNCTION, 0));
@@ -6476,13 +6478,17 @@ struct UnidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatb
64766478
bool asymmetric_quantize_inputs() const {
64776479
return GetField<uint8_t>(VT_ASYMMETRIC_QUANTIZE_INPUTS, 0) != 0;
64786480
}
6481+
bool diagonal_recurrent_tensors() const {
6482+
return GetField<uint8_t>(VT_DIAGONAL_RECURRENT_TENSORS, 0) != 0;
6483+
}
64796484
bool Verify(flatbuffers::Verifier &verifier) const {
64806485
return VerifyTableStart(verifier) &&
64816486
VerifyField<int8_t>(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) &&
64826487
VerifyField<float>(verifier, VT_CELL_CLIP, 4) &&
64836488
VerifyField<float>(verifier, VT_PROJ_CLIP, 4) &&
64846489
VerifyField<uint8_t>(verifier, VT_TIME_MAJOR, 1) &&
64856490
VerifyField<uint8_t>(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) &&
6491+
VerifyField<uint8_t>(verifier, VT_DIAGONAL_RECURRENT_TENSORS, 1) &&
64866492
verifier.EndTable();
64876493
}
64886494
UnidirectionalSequenceLSTMOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
@@ -6509,6 +6515,9 @@ struct UnidirectionalSequenceLSTMOptionsBuilder {
65096515
void add_asymmetric_quantize_inputs(bool asymmetric_quantize_inputs) {
65106516
fbb_.AddElement<uint8_t>(UnidirectionalSequenceLSTMOptions::VT_ASYMMETRIC_QUANTIZE_INPUTS, static_cast<uint8_t>(asymmetric_quantize_inputs), 0);
65116517
}
6518+
void add_diagonal_recurrent_tensors(bool diagonal_recurrent_tensors) {
6519+
fbb_.AddElement<uint8_t>(UnidirectionalSequenceLSTMOptions::VT_DIAGONAL_RECURRENT_TENSORS, static_cast<uint8_t>(diagonal_recurrent_tensors), 0);
6520+
}
65126521
explicit UnidirectionalSequenceLSTMOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
65136522
: fbb_(_fbb) {
65146523
start_ = fbb_.StartTable();
@@ -6526,10 +6535,12 @@ inline flatbuffers::Offset<UnidirectionalSequenceLSTMOptions> CreateUnidirection
65266535
float cell_clip = 0.0f,
65276536
float proj_clip = 0.0f,
65286537
bool time_major = false,
6529-
bool asymmetric_quantize_inputs = false) {
6538+
bool asymmetric_quantize_inputs = false,
6539+
bool diagonal_recurrent_tensors = false) {
65306540
UnidirectionalSequenceLSTMOptionsBuilder builder_(_fbb);
65316541
builder_.add_proj_clip(proj_clip);
65326542
builder_.add_cell_clip(cell_clip);
6543+
builder_.add_diagonal_recurrent_tensors(diagonal_recurrent_tensors);
65336544
builder_.add_asymmetric_quantize_inputs(asymmetric_quantize_inputs);
65346545
builder_.add_time_major(time_major);
65356546
builder_.add_fused_activation_function(fused_activation_function);
@@ -14276,6 +14287,7 @@ inline void UnidirectionalSequenceLSTMOptions::UnPackTo(UnidirectionalSequenceLS
1427614287
{ auto _e = proj_clip(); _o->proj_clip = _e; }
1427714288
{ auto _e = time_major(); _o->time_major = _e; }
1427814289
{ auto _e = asymmetric_quantize_inputs(); _o->asymmetric_quantize_inputs = _e; }
14290+
{ auto _e = diagonal_recurrent_tensors(); _o->diagonal_recurrent_tensors = _e; }
1427914291
}
1428014292

1428114293
inline flatbuffers::Offset<UnidirectionalSequenceLSTMOptions> UnidirectionalSequenceLSTMOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const UnidirectionalSequenceLSTMOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
@@ -14291,13 +14303,15 @@ inline flatbuffers::Offset<UnidirectionalSequenceLSTMOptions> CreateUnidirection
1429114303
auto _proj_clip = _o->proj_clip;
1429214304
auto _time_major = _o->time_major;
1429314305
auto _asymmetric_quantize_inputs = _o->asymmetric_quantize_inputs;
14306+
auto _diagonal_recurrent_tensors = _o->diagonal_recurrent_tensors;
1429414307
return tflite::CreateUnidirectionalSequenceLSTMOptions(
1429514308
_fbb,
1429614309
_fused_activation_function,
1429714310
_cell_clip,
1429814311
_proj_clip,
1429914312
_time_major,
14300-
_asymmetric_quantize_inputs);
14313+
_asymmetric_quantize_inputs,
14314+
_diagonal_recurrent_tensors);
1430114315
}
1430214316

1430314317
inline BidirectionalSequenceLSTMOptionsT *BidirectionalSequenceLSTMOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const {

0 commit comments

Comments
 (0)