diff --git a/src/operator/Conv.cpp b/src/operator/Conv.cpp index ee850414cb97851b78e5413b5a4f69d77ad041a4..be575a1f2ce3d485c5563a09aa067c20845444c0 100644 --- a/src/operator/Conv.cpp +++ b/src/operator/Conv.cpp @@ -105,18 +105,18 @@ Aidge::Conv_Op<DIM>::computeReceptiveField( std::vector<DimSize_t> inputDims{outputDims[0], getInput(0)->dims()[1]}; for (DimIdx_t i = 0; i < DIM; ++i) { inputDims.push_back((outputDims[2+static_cast<std::size_t>(i)] - 1) - * mAttributes->template getAttr<ConvAttr::StrideDims>()[static_cast<std::size_t>(i)] + * strideDims()[static_cast<std::size_t>(i)] + 1 - + (mAttributes->template getAttr<ConvAttr::KernelDims>()[static_cast<std::size_t>(i)] - 1) - * mAttributes->template getAttr<ConvAttr::DilationDims>()[static_cast<std::size_t>(i)]); - inputIdxDims[2+i] *= mAttributes->template getAttr<ConvAttr::StrideDims>()[static_cast<std::size_t>(i)]; + + (kernelDims()[static_cast<std::size_t>(i)] - 1) + * dilationDims()[static_cast<std::size_t>(i)]); + inputIdxDims[2+i] *= strideDims()[static_cast<std::size_t>(i)]; } // Weight // same output value, every input channel is used std::vector<DimSize_t> weightDims{outputDims[1], getInput(0)->dims()[1]}; for (std::size_t i = 0; i < DIM; ++i) { - weightDims.push_back(mAttributes->template getAttr<ConvAttr::KernelDims>()[i]); + weightDims.push_back(kernelDims()[i]); } std::vector<DimSize_t> weightIdxDims = std::vector<DimSize_t>(DIM+2, 0); weightIdxDims[0] = firstEltDims[1];