gpt4 book ai didi

python - 一维 CNN 是否需要填充以保留输入长度?

转载 作者:太空宇宙 更新时间:2023-11-04 08:27:35 28 4
gpt4 key购买 nike

stride = 1 和 1 个过滤器的 1D CNN 的输出长度不应该等于输入长度而不需要填充吗?

我认为是这种情况,但创建了一个具有这些规范的 Keras 模型,当输入形状为 (17910,1) 时,输出形状为 (17902,1)。我想知道为什么维度减少了,因为步幅为 1 并且它是一维卷积。

model = keras.Sequential([
layers.Conv1D(filters=1,kernel_size=9,strides=1,activation=tf.nn.relu,input_shape=X_train[0].shape)
])

我希望这个模型的输出形状应该是 (17910,1),但显然我在这个转换中缺少维度减少的来源。层。

最佳答案

输出向量的长度取决于输入的长度和内核大小。由于您的内核大小为 9,因此您将获得 17902 次输入卷积,因此输出形状为 (17902,1)(无填充)。

为了更好的理解:

没有填充:

enter image description here

带填充:

enter image description here

是否应该使用填充更多是一个准确性问题。正如 Ian Goodfellow、Yoshua Bengio 和 Aaaron Courville 在他们的 Deep Learning找到书,最佳填充(至少对于 2D 图像)位于“无”和“相同”之间的某个位置

所以我的建议是,尝试两种不同的 CNN,它们除了填充外具有相同的架构,然后选择精度更高的 CNN。

(来源:https://www.slideshare.net/xavigiro/recurrent-neural-networks-2-d2l3-deep-learning-for-speech-and-language-upc-2017)

关于python - 一维 CNN 是否需要填充以保留输入长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55701788/

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