From 633c71c2c064d0432a9489fbd704b5f48d6b78e9 Mon Sep 17 00:00:00 2001 From: Zuza Date: Wed, 2 Feb 2022 16:43:47 +0100 Subject: [PATCH] Fix fc_mkldnn format issue (#38890) --- .../fluid/framework/ir/mkldnn/cpu_quantize_pass.cc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/paddle/fluid/framework/ir/mkldnn/cpu_quantize_pass.cc b/paddle/fluid/framework/ir/mkldnn/cpu_quantize_pass.cc index 64d9bf60353..0f12261d3c4 100644 --- a/paddle/fluid/framework/ir/mkldnn/cpu_quantize_pass.cc +++ b/paddle/fluid/framework/ir/mkldnn/cpu_quantize_pass.cc @@ -95,8 +95,17 @@ void CPUQuantizePass::QuantizeInput(Graph* g, Node* op, Node* input, q_desc.SetAttr("Shift", shift); q_desc.SetAttr("is_negative_input", !is_input_unsigned); - q_desc.SetAttr("output_format", - Has("data_layout") ? Get("data_layout") : "NHWC"); + // fix to fc format error + if (op->Op()->Type() == "fc" && + op->Op()->GetAttrIfExists("in_num_col_dims") == 2) { + q_desc.SetAttr("output_format", Has("data_layout") + ? Get("data_layout") + : "NCHW"); + } else { + q_desc.SetAttr("output_format", Has("data_layout") + ? Get("data_layout") + : "NHWC"); + } auto quantize_op = g->CreateOpNode(&q_desc); // OpDesc will be copied. // update op's input -- GitLab