首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras‘Conv1D中的默认步长是多少?

Keras‘Conv1D中的默认步长是多少?
EN

Stack Overflow用户
提问于 2018-07-26 15:24:02
回答 2查看 3.6K关注 0票数 0

目前,我正在通过测试内核大小来调整我的模型。

我有以下code

代码语言:javascript
复制
x = embedding_layer(input_4)                
x = Conv1D(FILTERS, KERNEL, activation='relu')(x)
x = Dropout(DROPOUT)(x)            
x = Conv1D(FILTERS, KERNEL, activation='relu')(x)       
x = Dropout(DROPOUT)(x)
x = Conv1D(FILTERS, KERNEL, activation='relu')(x)       
x = Dropout(DROPOUT)(x)
x = Conv1D(FILTERS, KERNEL, activation='relu')(x) 
x = Dropout(DROPOUT)(x)            
x = Conv1D(FILTERS, KERNEL, activation='relu')(x) 
x = Dropout(DROPOUT)(x)            
x = MaxPooling1D(3)(x)

x = Conv1D(FILTERS, KERNEL, activation='relu')(x)
x = Dropout(DROPOUT)(x)            
x = Conv1D(FILTERS, KERNEL, activation='relu')(x)       
x = Dropout(DROPOUT)(x)
x = Conv1D(FILTERS, KERNEL, activation='relu')(x)       
x = Dropout(DROPOUT)(x)
x = Conv1D(FILTERS, KERNEL, activation='relu')(x) 
x = Dropout(DROPOUT)(x)            
x = Conv1D(FILTERS, KERNEL, activation='relu')(x) 
x = Dropout(DROPOUT)(x)            
x = MaxPooling1D(3)(x)

当内核是23时,网络运行良好,但从4开始,它就会遇到关于维度的错误。我怀疑这与步幅有关。然而,Keras网站(https://keras.io/layers/convolutional/)并没有说明默认的跨距是多少。

我现在的问题是: Keras‘Conv1D中的默认步长是多少?对于4的内核大小和5的内核大小,什么是一个好的步长?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-26 16:48:38

Conv1D中,默认的步长是1。除非您对另一个长度有具体的理由,否则步长1通常是合适的。

您所得到的错误可能是因为一维卷积层的输出维数是:

代码语言:javascript
复制
output_dim = 1 + (input_dim - kernel_size)/stride

在叠加了几个一维卷积层之后,您可能会到达一个输入维度小于内核大小的层。这是因为参数padding的默认值是'valid',这意味着输入没有填充。

如果您想要在每个卷积层保留输入维数,设置padding='same'将导致填充输入,从而使输出具有与原始输入相同的长度。

票数 4
EN

Stack Overflow用户

发布于 2021-10-02 14:32:27

默认的步幅实际上是(1,1),这意味着滤波器对滤波器的每一个水平移动都要正确一个像素,对于滤波器的每个垂直移动则向下一个像素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51542442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档