UMat biasOnesMat = UMat::ones(outerSize, 1, umat_blobs[0].type());
for (size_t i = 0; i < inputs.size(); i++)
{
- UMat& srcMat = inputs[i];
- UMat& dstMat = outputs[i];
+ MatShape inshape, outshape;
+ inshape = shape(outerSize, innerSize);
+ outshape = shape(outerSize, numOutput);
+
+ UMat srcMat, dstMat;
+ srcMat = inputs[i].reshape(1, inshape.size(), &inshape[0]);
+ dstMat = outputs[i].reshape(1, outshape.size(), &outshape[0]);
dstMat.setTo(0.0f);
if (!innerProductOp->Forward(srcMat, umat_blobs[0], (bias) ? umat_blobs[1] : UMat(), dstMat))