From 27d106d5749c0c7251278dcb4e183def6226b888 Mon Sep 17 00:00:00 2001 From: satyam yadav Date: Sat, 15 Nov 2025 21:41:50 +0530 Subject: [PATCH] Update torch_importer.cpp --- modules/dnn/src/torch/torch_importer.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/modules/dnn/src/torch/torch_importer.cpp b/modules/dnn/src/torch/torch_importer.cpp index 08822102c7..7e387929ce 100644 --- a/modules/dnn/src/torch/torch_importer.cpp +++ b/modules/dnn/src/torch/torch_importer.cpp @@ -782,12 +782,16 @@ struct TorchImporter int dim = scalarParams.get("dim") - 1; // In Lua we start from 1. int pad = scalarParams.get("pad"); - std::vector paddings((dim + 1) * 2, 0); + AutoBuffer paddingsBuf((dim + 1) * 2); + int *paddings = paddingsBuf.data(); + int paddingsSize = (dim + 1) * 2; + for (int i = 0; i < paddingsSize; ++i) paddings[i] = 0; if (pad > 0) - paddings[dim * 2 + 1] = pad; // Pad after (right). + paddings[dim * 2 + 1] = pad; else - paddings[dim * 2] = -pad; // Pad before (left). - layerParams.set("paddings", DictValue::arrayInt(&paddings[0], paddings.size())); + paddings[dim * 2] = -pad; + layerParams.set("paddings", DictValue::arrayInt(paddings, paddingsSize)); + curModule->modules.push_back(newModule); } @@ -935,12 +939,14 @@ struct TorchImporter // Torch's SpatialZeroPadding works with 3- or 4-dimensional input. // So we add parameter input_dims=3 to ignore batch dimension if it will be. - std::vector paddings(6, 0); // CHW + int paddings[6] = {0, 0, 0, 0, 0, 0}; + paddings[2] = padTop; paddings[3] = padBottom; paddings[4] = padLeft; paddings[5] = padRight; - layerParams.set("paddings", DictValue::arrayInt(&paddings[0], paddings.size())); + + layerParams.set("paddings", DictValue::arrayInt(paddings, 6)); layerParams.set("input_dims", 3); if (nnName == "SpatialReflectionPadding")