[PT FE] Fix issue when FakeQuantize is not inserted after regular operations (#19314)

This commit is contained in:
Maxim Vafin 2023-08-22 17:18:23 +02:00 committed by GitHub
parent 6eee51a6ef
commit 4882ccde03
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -154,12 +154,13 @@ template <OutputVector (*T)(const NodeContext&), size_t in_idx = 0, size_t out_i
OutputVector quantizable_op(const NodeContext& context) { OutputVector quantizable_op(const NodeContext& context) {
auto translation_res = T(context); auto translation_res = T(context);
FRONT_END_OP_CONVERSION_CHECK(translation_res.size() > out_idx, "Not enough outputs to apply quantization."); FRONT_END_OP_CONVERSION_CHECK(translation_res.size() > out_idx, "Not enough outputs to apply quantization.");
if (const auto quantized_pt_node = cast_quantized_fw_node(context.get_input(in_idx).get_node_shared_ptr())) { auto target_input = context.get_input(in_idx);
return {context.mark_node(std::make_shared<QuantizedPtNode>(quantized_pt_node->get_type(), if (const auto quantized_pt_node = cast_quantized_fw_node(target_input.get_node_shared_ptr())) {
translation_res[out_idx], return {quantize(context,
quantized_pt_node->get_scale(), translation_res[out_idx],
quantized_pt_node->get_zero_point(), quantized_pt_node->get_scale(),
quantized_pt_node->get_dtype()))}; quantized_pt_node->get_zero_point(),
target_input)};
} }
return translation_res; return translation_res;
} }