diff --git a/tensorflow/lite/kernels/lstm.cc b/tensorflow/lite/kernels/lstm.cc index 55fcf4124d2..7ace5333991 100644 --- a/tensorflow/lite/kernels/lstm.cc +++ b/tensorflow/lite/kernels/lstm.cc @@ -137,14 +137,15 @@ TfLiteStatus PopulateQuantizedLstmParams( auto* proj_params = reinterpret_cast( output_tensor->quantization.params); if (cell_clip > 0.0) { - quantized_lstm_param->quantized_cell_clip = - static_cast(cell_clip / cell_params->scale->data[0]); + quantized_lstm_param->quantized_cell_clip = static_cast( + std::min(std::max(cell_clip / cell_params->scale->data[0], -32768.0f), + 32767.0f)); } else { quantized_lstm_param->quantized_cell_clip = 0; } if (proj_clip > 0.0) { - quantized_lstm_param->quantized_proj_clip = - static_cast(proj_clip / proj_params->scale->data[0]); + quantized_lstm_param->quantized_proj_clip = static_cast(std::min( + std::max(proj_clip / proj_params->scale->data[0], -128.0f), 127.0f)); } else { quantized_lstm_param->quantized_proj_clip = 0; }