I am building a model that needs to perform the mathematical operation of convolution between the batches of 1D input
c and a parameter, call it
Thus, I want something similar to
np.convolve(E,c) but in native pytorch . Am I taking i correctly, that Conv1D is not the right tool for the job? The documentation states it uses the valid cross-correlation operator insead of a convolution operator.
I found the following (at least) working solution to give reasonable yet wrong results:
conv = torch.nn.Conv1d( 1, #number of batches 1, #number of features (just 1) 40, #length of the 1D kernel (E) bias=False, padding=n_kernel - 1 #make it a "full" convolution or correlation, I guess ) sol = conv(c[None, :])
Am I overlooking something and if so, how can I recreate the expected (numpy) behavior? And also, on a less serious note,why is it not called Cor1D then?
Thanks so much for your help!