scipy convolve has mode=‘same’ option which gives you the output with the same size as input, how do I set parameters like stride and padding to achive the same with `torch.nn.functional.conv1d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) `

?

For a `stride`

and `dilation`

of `1`

, the padding should be `weight.size(2)//2`

for an odd sized kernel on both sides and `[weight.size(2)//2, weight.size(2)//2 -1]`

for an evenly sizes kernel.

thank you so much for this answer. However I need bigger stride, is there a formula considering this parameter?

For a more general formula, you could take a look at @rwightman’s median pooling implementation.

This would calculate the padding for a 2-dimensional input, so you could remove one spatial dim for your use case.

1 Like