[CPU] Correct ConvertFqRnnToQuantizeRnn transformation (#19850)

by ensuring convert is placed after u8/i8 output
This commit is contained in:
Egor Duplenskii 2023-09-14 20:04:58 +02:00 committed by GitHub
parent b3bfcfc399
commit 73d8843da8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -203,15 +203,14 @@ ov::intel_cpu::ConvertFqRnnToQuantizedRnn::ConvertFqRnnToQuantizedRnn() {
const auto& multiply = rnn->get_input_node_shared_ptr(1); const auto& multiply = rnn->get_input_node_shared_ptr(1);
auto new_convert = convert->clone_with_new_inputs({rnn_quantized->output(1)}); auto new_convert = convert->clone_with_new_inputs({rnn_quantized->output(1)});
std::shared_ptr<Node> multiply_in = new_convert; std::shared_ptr<Node> multiply_input = new_convert;
// dequantize with subtract // dequantize with subtract
if (subtract_it != pattern_map.end()) { if (subtract_it != pattern_map.end()) {
const auto subtract = std::dynamic_pointer_cast<ngraph::opset9::Subtract>(subtract_it->second.get_node_shared_ptr()); const auto subtract = std::dynamic_pointer_cast<ngraph::opset9::Subtract>(subtract_it->second.get_node_shared_ptr());
auto new_subtract = subtract->clone_with_new_inputs({rnn_quantized->output(1), subtract->input_value(1)}); multiply_input = subtract->clone_with_new_inputs({multiply_input, subtract->input_value(1)});
multiply_in = new_subtract;
} }
auto new_multiply = multiply->clone_with_new_inputs({multiply_in, multiply->input_value(1)}); auto new_multiply = multiply->clone_with_new_inputs({multiply_input, multiply->input_value(1)});
new_multiply->set_friendly_name(rnn_quantized->get_friendly_name() + ".1"); new_multiply->set_friendly_name(rnn_quantized->get_friendly_name() + ".1");
for (auto output : H_outputs) { for (auto output : H_outputs) {