From 11e6848bb97d6b6c2b1dad90f283bafed29a9316 Mon Sep 17 00:00:00 2001 From: Smirnov Egor Date: Tue, 30 Nov 2021 15:34:34 +0300 Subject: [PATCH] add default order to transpose --- modules/dnn/src/onnx/onnx_importer.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/dnn/src/onnx/onnx_importer.cpp b/modules/dnn/src/onnx/onnx_importer.cpp index d70a81b9ad..540dac3a90 100644 --- a/modules/dnn/src/onnx/onnx_importer.cpp +++ b/modules/dnn/src/onnx/onnx_importer.cpp @@ -1644,6 +1644,16 @@ void ONNXImporter::parseTranspose(LayerParams& layerParams, const opencv_onnx::N { layerParams.type = "Permute"; replaceLayerParam(layerParams, "perm", "order"); + if (!layerParams.has("order")) { + MatShape inpShape = outShapes[node_proto.input(0)]; + size_t dims = inpShape.size(); + std::vector perm(dims); + for (size_t d = 0; d < dims; ++d) + { + perm[d] = static_cast(dims - 1 - d); + } + layerParams.set("order", DictValue::arrayInt(perm.data(), perm.size())); + } CV_Assert(node_proto.input_size() == 1); if (constBlobs.find(node_proto.input(0)) != constBlobs.end())