I was wondering if anyone could help me solve this problem. Say I have a minibatch of inputs:
x = torch.randn(N, C_in, iH, iW)
Along with that, I have N unique sets of filters:
W = torch.randn(N, C_out, C_in, kH, kW)
What I’d like is something like:
y = F.batch_conv2d(x, W) # let's say iH=5, iW=5, kH=1, kW=1, C_out=3, N=10 assert(y.shape == (10, 3, 5, 5))
I’ve tried searching the forum for something similar, but the closest I’ve seen is someone wanting to partition filters along the input channels (i.e. depthwise convolutions, so they ended up using groups). I need the split to be in the minibatch dimension.
Another thing I’ve tried is to use F.conv3d with the minibatch being moved into the iT dimension, but this dimension isn’t preserved in the output since it wasn’t designed for this use case.