Sure, but nn.Conv2d and F.conv2d expect the same kernel shapes, so I just used it as a bad example. 
I’m still not sure how the kernel should be applied, i.e. on each input channel separately or as a vanilla convolution using all input channels.
However, here is a small example for both approaches:
w1 = 0.1
W1 = nn.Parameter(torch.tensor([[[[w1,0],[0,0]]]]).expand(-1, 31, -1, -1))
output = F.conv2d(x, W1, stride=2)

# or using groups=31 so that the single kernel is applied on each channel separately
W1 = nn.Parameter(torch.tensor([[[[w1,0],[0,0]]]]).expand(31, -1, -1, -1))
output = F.conv2d(x, W1, stride=2, groups=31)