[IE CLDNN] Fixed bias/scales data type in ScaleShift layer (#3477)

This commit is contained in:
Vladimir Paramuzov 2020-12-09 09:38:29 +03:00 committed by GitHub
parent 7d8144f160
commit 8b9feed603
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1563,14 +1563,17 @@ void Program::CreateScaleShiftPrimitive(cldnn::topology& topology, InferenceEngi
default: weightTensor = CldnnTensorFromIEDims(wDims); default: weightTensor = CldnnTensorFromIEDims(wDims);
break; break;
} }
cldnn::layout blobLayout(DataTypeFromPrecision(layer->precision), m_defaultFormat, weightTensor); auto scales_dt = DataTypeFromPrecision(scaleShiftLayer->_weights->getTensorDesc().getPrecision());
scalePrimID = CreatePrimitiveFromBlob(topology, scalePrimID, scaleShiftLayer->_weights, blobLayout); cldnn::layout scalesLayout(scales_dt, m_defaultFormat, weightTensor);
scalePrimID = CreatePrimitiveFromBlob(topology, scalePrimID, scaleShiftLayer->_weights, scalesLayout);
if (scaleShiftLayer->_biases != nullptr) { 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(); const auto& bDims = scaleShiftLayer->_biases->getTensorDesc().getDims();
if (bDims != wDims) { if (bDims != wDims) {
THROW_CLDNN_EXCEPTION("Invalid bias blob dimensions in layer " << layer->name); 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 { } else {
biasPrimID = ""; // 0-bias biasPrimID = ""; // 0-bias
} }