-// Copyright (C) 2018 Intel Corporation
+// Copyright (C) 2018-2019 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
//
auto parentOutDims = getParentEdgeAt(0)->getDims();
+ if (getParentEdges().size() != 1)
+ THROW_IE_EXCEPTION << "Cannot create layer " << getName() << ": Incorrect number of inputs!";
+ if (parentOutDims != getChildEdgeAt(0)->getDims())
+ THROW_IE_EXCEPTION << "Cannot create layer " << getName() << ": Incorrect dimensions!";
+
SizeVector weightDims = { (long unsigned int)parentOutDims[1] };
MKLDNNDims blocked_weightDims(weightDims);
if (isBroadcast()) {
float broadcastValue = static_cast<float*>(internalBlobMemory[0]->GetData())[0];
- int blbSize = internalBlobMemory[0]->GetPrimitiveDescriptor().desc().data.dims[0];
+ size_t blbSize = internalBlobMemory[0]->GetPrimitiveDescriptor().desc().data.dims[0];
for (int i = 1; i < blbSize && realWeightSize != blbSize; i++) {
static_cast<float*>(internalBlobMemory[0]->GetData())[i] = broadcastValue;
}
static_cast<float*>(internalBlobMemory[1]->GetData())[i] = broadcastValue;
}
}
+ } else {
+ size_t blbSize = internalBlobMemory[0]->GetPrimitiveDescriptor().desc().data.dims[0];
+ if (realWeightSize != blbSize)
+ THROW_IE_EXCEPTION << "Cannot create layer " << getName() << ": Incorrect weights!";
+ if (isWithBiases()) {
+ blbSize = internalBlobMemory[1]->GetPrimitiveDescriptor().desc().data.dims[0];
+ if (realBiasSize != blbSize)
+ THROW_IE_EXCEPTION << "Cannot create layer " << getName() << ": Incorrect biases!";
+ }
}
if (isWithBiases()) {