Regular conv1d is basically $a_i^c = \sum_{k, c’} weight[c, c’, k] x_{i+k}^c’$, where x is the input with c' the input channel dim, and weight has dimensions [out_channel_dim, in_channel_dim, kernel_size].
The questions
- Is there a way to do the convolution operation alone, i.e. without the summation over the channel dim
c'? - I guess I could use the
einsumfor this, but is it going to be fast enough (like cuDNN fast)?
functional.conv1d does the actual convolution, summation over the channel dim and adds the bias… I’d need some more primitive ops for my crazy experiments! 