Bound quantized clipping properly.

PiperOrigin-RevId: 266927331
This commit is contained in:
Jian Li 2019-09-03 07:50:11 -07:00 committed by TensorFlower Gardener
parent 5987362c41
commit 54a26c673e

View File

@ -137,14 +137,15 @@ TfLiteStatus PopulateQuantizedLstmParams(
auto* proj_params = reinterpret_cast<TfLiteAffineQuantization*>(
output_tensor->quantization.params);
if (cell_clip > 0.0) {
quantized_lstm_param->quantized_cell_clip =
static_cast<int16_t>(cell_clip / cell_params->scale->data[0]);
quantized_lstm_param->quantized_cell_clip = static_cast<int32_t>(
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<int8_t>(proj_clip / proj_params->scale->data[0]);
quantized_lstm_param->quantized_proj_clip = static_cast<int32_t>(std::min(
std::max(proj_clip / proj_params->scale->data[0], -128.0f), 127.0f));
} else {
quantized_lstm_param->quantized_proj_clip = 0;
}