Keras conv1d layer parameters: filters and kernel_size

前端 未结 1 967
一整个雨季
一整个雨季 2021-01-30 01:21

I am very confused by these two parameters in the conv1d layer from keras: https://keras.io/layers/convolutional/#conv1d

the documentation says:

filters:         


        
1条回答
  •  鱼传尺愫
    2021-01-30 01:46

    You're right to say that kernel_size defines the size of the sliding window.

    The filters parameters is just how many different windows you will have. (All of them with the same length, which is kernel_size). How many different results or channels you want to produce.

    When you use filters=100 and kernel_size=4, you are creating 100 different filters, each of them with length 4. The result will bring 100 different convolutions.

    Also, each filter has enough parameters to consider all input channels.


    The Conv1D layer expects these dimensions:

    (batchSize, length, channels)
    

    I suppose the best way to use it is to have the number of words in the length dimension (as if the words in order formed a sentence), and the channels be the output dimension of the embedding (numbers that define one word).

    So:

    batchSize = number of sentences    
    length = number of words in each sentence   
    channels = dimension of the embedding's output.    
    

    The convolutional layer will pass 100 different filters, each filter will slide along the length dimension (word by word, in groups of 4), considering all the channels that define the word.

    The outputs are shaped as:

    (number of sentences, 50 words, 100 output dimension or filters)   
    

    The filters are shaped as:

    (4 = length, 300 = word vector dimension, 100 output dimension of the convolution)  
    

    0 讨论(0)
提交回复
热议问题