From 3cf31cabb42a4ee011912be724e67837f0267193 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=91=D0=B0=D1=80?= =?utf8?q?=D0=B0=D0=BD=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2/AI=20Tools=20Lab=20/S?= =?utf8?q?RR/Engineer/=EC=82=BC=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Mon, 10 Dec 2018 21:44:35 +0300 Subject: [PATCH] [nnc] Support 'transpose' parameter of InnerProduct layer (#2598) Add support for 'transpose' parameter of InnerProduct layer. Signed-off-by: Sergei Barannikov --- contrib/nnc/passes/caffe_frontend/caffe_op_creator.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/contrib/nnc/passes/caffe_frontend/caffe_op_creator.cpp b/contrib/nnc/passes/caffe_frontend/caffe_op_creator.cpp index 1cbdaa8..283134b 100644 --- a/contrib/nnc/passes/caffe_frontend/caffe_op_creator.cpp +++ b/contrib/nnc/passes/caffe_frontend/caffe_op_creator.cpp @@ -257,9 +257,6 @@ void CaffeOpCreator::checkInnerProduct(const InnerProductParameter& opts, std::set& problemsOpSet) { if (opts.has_axis() && opts.axis() != 1) problemsOpSet.insert("Fully Connected: layer axis param is not supported yet"); - - if (opts.has_transpose() && opts.transpose()) - problemsOpSet.insert("Fully Connected: layer transpose param is not supported yet"); } /** @@ -275,7 +272,9 @@ CaffeOpCreator::convertInnerProduct(const LayerParameter& layer, const std::vector& inputs) { auto& opts = layer.inner_product_param(); auto weights = convertBlob(layer.blobs(0)); - weights = transposeTensor<1, 0>(weights); + + if (!opts.transpose()) + weights = transposeTensor<1, 0>(weights); // Add Reshape operation to make sure the input for FC operation has shape [1, fcInputSize] // It is needed because Caffe InnerProduct layer takes NCHW input and flattens the CHW part. -- 2.7.4