I want to do a conv1D operation but on an image. Let’s say the data is of size `(1,1,H,W)`

. Treat this as a data of size `(1,1,H)`

W times, and do `Conv1D(1,1,k)`

on each and stacking the outputs back. Basically, it is equivalent to doing a Conv2D with kernel size = `(k,W)`

, however, with each column of the kernel equal. It is like doing `np.tile(kernel,(1,W))`

on the regular Conv1D kernel and then using it on the image data.

How can I do this efficiently?

Wouldn’t your approach be equivalent to use a `nn.Conv2d`

with a kernel size of `(k, 1)`

?

This would also only use the height of the kernel and apply it basically to each “column”.

Let me know, if I misunderstood your use case.

1 Like

Oh yeah, I guess that’s an easy way to do it. The difference is, I would need to sum all the columns after the Conv2D operation since I was basically talking about a 2D kernel of size (k,W). But yea, thanks. This pointed me in the right direction!