kSpatialDim Class — pytorch Architecture
Architecture documentation for the kSpatialDim class in fbgemm_utils.cpp from the pytorch codebase.
Entity Profile
Source Code
aten/src/ATen/native/quantized/cpu/fbgemm_utils.cpp lines 97–146
template <int kSpatialDim>
fbgemm::conv_param_t<kSpatialDim> MakeFbgemmConvParam(
int N,
int C,
int M,
const std::vector<int>& image_shape,
int groups,
const std::vector<int>& kernels,
const std::vector<int>& strides,
const std::vector<int>& pads,
const std::vector<int>& dilations,
const std::vector<int>& output_padding,
bool transposed) {
std::array<int, kSpatialDim> image_shape_{};
std::array<int, kSpatialDim> kernels_{};
std::array<int, kSpatialDim> strides_{};
std::array<int, kSpatialDim * 2ull> pads_{};
std::array<int, kSpatialDim> dilations_{};
std::array<int, kSpatialDim> output_padding_{};
std::move(
image_shape.begin(), image_shape.begin() + static_cast<int64_t>(image_shape.size()), image_shape_.begin());
std::move(
kernels.begin(), kernels.begin() + static_cast<int64_t>(kernels.size()), kernels_.begin());
std::move(
strides.begin(), strides.begin() + static_cast<int64_t>(strides.size()), strides_.begin());
std::move(
dilations.begin(),
dilations.begin() + static_cast<int64_t>(dilations.size()),
dilations_.begin());
std::move(
output_padding.begin(),
output_padding.begin() + static_cast<int64_t>(output_padding.size()),
output_padding_.begin());
std::copy(pads.begin(), pads.begin() + static_cast<int64_t>(pads.size()), pads_.begin());
const auto pads_size = static_cast<int64_t>(pads.size());
std::move(pads.begin(), pads.begin() + pads_size, pads_.begin() + pads_size);
return fbgemm::conv_param_t<kSpatialDim>(
N, // batch size
C, // input channels
M, // output channels
image_shape_, // feature map size
groups, // groups
kernels_, // kernels
strides_, // strides
pads_, // paddings
dilations_, // dilations
output_padding_, // output paddings for conv transpose
transposed);
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free