aten/src/ATen/native/Convolution.cpp
// We currently only have depthwise support for the case where groups ==
// nInputPlane and nInputPlane == nOutputPlane (the latter due to the lack of
// a depthwise multiplier)
We currently only have depthwise support for the case where groups
nInputPlane and nInputPlane == nOutputPlane (the latter due to the lack of
a depthwise multiplier)
We currently only have depthwise support for the case where groups nInputPlane and nInputPlane == nOutputPlane ( the latter due to the lack of a depthwise multiplier )
auto ConvParams::is_depthwise(
        const at::Tensor& input, const at::Tensor& weight) const -> bool {
  return input.type().is_cuda() &&
         !transposed &&
         input.ndimension() == 4 &&
         input.size(1) == groups &&
         groups > 1 && 
         weight.size(0) % input.size(1) == 0; 
}
auto ConvParams :: is_depthwise ( const at :: Tensor & input , const at :: Tensor & weight ) const -> bool { return input . type ( ) . is_cuda ( ) && ! transposed && input . ndimension ( ) == 4 && input . size ( 1 ) == groups && groups > 1 && weight . size ( 0 ) % input . size ( 1 ) == 0 ; }
We currently only have depthwise support for the case where groups
nInputPlane and nInputPlane == nOutputPlane (the latter due to the lack of
a depthwise multiplier)
We currently only have depthwise support for the case where groups nInputPlane and nInputPlane == nOutputPlane ( the latter due to the lack of a depthwise multiplier )
// no point if there is only a single group // output channels must be a multiple of input channels