>>> input = torch.ones(1, 2 , 5)
>>> m = nn.Conv1d(2, 3, 3)
>>> m(input).shape
torch.Size([1, 3, 3])

C_in = 2, C_out = 3
Why do we need that argument? i thought that 1Dconv try to work on every vector(channel) separately and apply 1D filter on it producing the same number of channels. Does this function use a separate 2D filter for that purpose(changing the channel size)?