gpt4 book ai didi

Keras conv1d 层参数 : filters and kernel_size

转载 作者:行者123 更新时间:2023-12-03 10:25:44 27 4
gpt4 key购买 nike

我对来自 keras 的 conv1d 层中的这两个参数感到非常困惑:
https://keras.io/layers/convolutional/#conv1d

文档说:

filters: Integer, the dimensionality of the output space (i.e. the number output of filters in the convolution).
kernel_size: An integer or tuple/list of a single integer, specifying the length of the 1D convolution window.

但这似乎与我在许多教程中看到的标准术语无关,例如 https://adeshpande3.github.io/adeshpande3.github.io/A-Beginner 's-Guide-To-Understanding-Convolutional-Neural-Networks/和 https://machinelearningmastery.com/sequence-classification-lstm-recurrent-neural-networks-python-keras/

使用使用 Keras 的第二个教程链接,我认为实际上“kernel_size”与定义输入特征空间上的滑动窗口的传统“过滤器”概念相关。但是 conv1d 中的“过滤器”参数呢?它有什么作用?

例如,在以下代码片段中:
model.add(embedding_layer)
model.add(Dropout(0.2))
model.add(Conv1D(filters=100, kernel_size=4, padding='same', activation='relu'))

假设嵌入层输出一个维度为 50(行,每行是句子中的一个词)x 300(列,词向量维度)的矩阵,conv1d 层如何转换该矩阵?

非常感谢

最佳答案

你说得对 kernel_size定义滑动窗口的大小。
filters参数就是您将拥有多少个不同的窗口。 (所有这些都具有相同的长度,即 kernel_size )。您想要产生多少不同的结果或 channel 。

当您使用 filters=100kernel_size=4 ,您正在创建 100 个不同的过滤器,每个过滤器的长度为 4。结果将带来 100 个不同的卷积。

此外,每个过滤器都有足够的参数来考虑所有输入 channel 。

Conv1D 层需要以下维度:

(batchSize, length, channels)

我想使用它的最好方法是在长度维度上有单词的数量(好像单词按顺序组成了一个句子),而 channel 是嵌入的输出维度(定义一个单词的数字)。

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

卷积层将通过 100 个不同的过滤器,每个过滤器将沿着 length 滑动维度(逐词,以 4 为一组),考虑定义该词的所有 channel 。

输出的形状如下:
(number of sentences, 50 words, 100 output dimension or filters)   

过滤器的形状如下:
(4 = length, 300 = word vector dimension, 100 output dimension of the convolution)  

关于Keras conv1d 层参数 : filters and kernel_size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46503816/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com