From 8b9feed60360791ef56c57901ca4d9f274b11f06 Mon Sep 17 00:00:00 2001 From: Vladimir Paramuzov Date: Wed, 9 Dec 2020 09:38:29 +0300 Subject: [PATCH] [IE CLDNN] Fixed bias/scales data type in ScaleShift layer (#3477) --- inference-engine/src/cldnn_engine/cldnn_program.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/inference-engine/src/cldnn_engine/cldnn_program.cpp b/inference-engine/src/cldnn_engine/cldnn_program.cpp index 43b89630349..535821e187a 100644 --- a/inference-engine/src/cldnn_engine/cldnn_program.cpp +++ b/inference-engine/src/cldnn_engine/cldnn_program.cpp @@ -1563,14 +1563,17 @@ void Program::CreateScaleShiftPrimitive(cldnn::topology& topology, InferenceEngi default: weightTensor = CldnnTensorFromIEDims(wDims); break; } - cldnn::layout blobLayout(DataTypeFromPrecision(layer->precision), m_defaultFormat, weightTensor); - scalePrimID = CreatePrimitiveFromBlob(topology, scalePrimID, scaleShiftLayer->_weights, blobLayout); + auto scales_dt = DataTypeFromPrecision(scaleShiftLayer->_weights->getTensorDesc().getPrecision()); + cldnn::layout scalesLayout(scales_dt, m_defaultFormat, weightTensor); + scalePrimID = CreatePrimitiveFromBlob(topology, scalePrimID, scaleShiftLayer->_weights, scalesLayout); if (scaleShiftLayer->_biases != nullptr) { + auto shifts_dt = DataTypeFromPrecision(scaleShiftLayer->_biases->getTensorDesc().getPrecision()); + cldnn::layout shiftsLayout(shifts_dt, m_defaultFormat, weightTensor); const auto& bDims = scaleShiftLayer->_biases->getTensorDesc().getDims(); if (bDims != wDims) { THROW_CLDNN_EXCEPTION("Invalid bias blob dimensions in layer " << layer->name); } - biasPrimID = CreatePrimitiveFromBlob(topology, biasPrimID, scaleShiftLayer->_biases, blobLayout); + biasPrimID = CreatePrimitiveFromBlob(topology, biasPrimID, scaleShiftLayer->_biases, shiftsLayout); } else { biasPrimID = ""; // 0-bias }