aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/contrib/lite/toco/graph_transformations/identify_lstm_merge_inputs.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tensorflow/contrib/lite/toco/graph_transformations/identify_lstm_merge_inputs.cc')
-rw-r--r--tensorflow/contrib/lite/toco/graph_transformations/identify_lstm_merge_inputs.cc16
1 files changed, 10 insertions, 6 deletions
diff --git a/tensorflow/contrib/lite/toco/graph_transformations/identify_lstm_merge_inputs.cc b/tensorflow/contrib/lite/toco/graph_transformations/identify_lstm_merge_inputs.cc
index 5b6a984ee1..6ccce923f3 100644
--- a/tensorflow/contrib/lite/toco/graph_transformations/identify_lstm_merge_inputs.cc
+++ b/tensorflow/contrib/lite/toco/graph_transformations/identify_lstm_merge_inputs.cc
@@ -25,19 +25,22 @@ limitations under the License.
namespace toco {
-bool MergeLstmCellInputs::Run(Model* model, std::size_t op_index) {
+::tensorflow::Status MergeLstmCellInputs::Run(Model* model,
+ std::size_t op_index,
+ bool* modified) {
+ *modified = false;
// Find lstm cell.
auto op_it = model->operators.begin() + op_index;
auto src_op = op_it->get();
if (src_op->type != OperatorType::kLstmCell) {
- return false;
+ return ::tensorflow::Status::OK();
}
// Already a compact LstmCell. Do not need to merge cell inputs.
const auto* src_lstm_op = static_cast<LstmCellOperator*>(src_op);
if (src_lstm_op->kernel_type != LstmCellOperator::KERNEL_FULL ||
src_lstm_op->inputs.size() != kExtendedLstmInputCount) {
- return false;
+ return ::tensorflow::Status::OK();
}
// Identify prev_activ_input, prev_state_input as required Op inputs,
@@ -45,12 +48,12 @@ bool MergeLstmCellInputs::Run(Model* model, std::size_t op_index) {
string prev_activ_input;
if (!GetMatchingRnnArray(model, src_op->outputs[kOutputTensor],
&prev_activ_input)) {
- return false;
+ return ::tensorflow::Status::OK();
}
string prev_state_input;
if (!GetMatchingRnnArray(model, src_op->outputs[kCellStateTensor],
&prev_state_input)) {
- return false;
+ return ::tensorflow::Status::OK();
}
// Get LstmCell's cell, input, output size.
@@ -184,7 +187,8 @@ bool MergeLstmCellInputs::Run(Model* model, std::size_t op_index) {
DeleteArrayIfUnused(src_op->inputs[kOutputGateBiasTensor], model);
model->operators.erase(FindOp(*model, src_op));
- return true;
+ *modified = true;
+ return ::tensorflow::Status::OK();
}
} // namespace toco