0
$\begingroup$

I have far from a perfect understanding of how 1-D convolution neural networks learn, but I think I understand how the kernel operates on 1-D input data. How does 1-D convolution work with multi-dimensional input data? An image from this article:

enter image description here

has led me to think that the "kernel_size" argument in tensorflow.keras Conv1D layers actually controls the width of the kernel (which seems obvious with 1-D input data) but that the kernels themselves are as "deep" as the number of rows in the input data. Is this understanding correct? If so, what is the relationship between the weights in the "rows" of the kernel? Are they all the same, different but related in some way, or entirely different? Please let me know if my understanding seem off-base, and thanks in advance for your help!

$\endgroup$
0
$\begingroup$

Yes, your understanding is correct: kernels are as deep as the input data.

The weights in the rows depend entirely on the patterns in the input data and the target data. CNNs are feature detectors so, after training, the weights in the kernel will have values that lead to activation maps that are useful for the task the network was optimized for. They would probably not have the same values, because normally the input data does not have the same values in all rows and, even in that case, the random weight initialization would lead to different final values.

$\endgroup$
1
  • $\begingroup$ That makes sense, thanks for the answer! $\endgroup$ Aug 2 at 13:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.