在Convolution2D docs of keras中,我发现没有关于padding
keras.layers.convolutional.Convolution2D(nb_filter,
nb_row,
nb_col,
init='glorot_uniform',
activation=None,
weights=None,
border_mode='valid',
subsample=(1, 1),
dim_ordering='default',
W_regularizer=None,
b_regularizer=None,
activity_regularizer=None,
W_constraint=None,
b_constraint=None,
bias=True)
subsample
参数是
长度为2的元组。用于子采样输出的因子。在其他地方也称为步幅。
我认为这是一个很大的进步。
border_mode
参数是
'有效','相同'或'完整'。 ('完整'需要Theano后端。)
valid
和same
也是TensorFlow的conv2d函数中的参数。
如何定义填充,如何设置它的值?
答案 0 :(得分:4)
你想要的是ZeroPadding2D层,只需将它放在卷积层之前。这比将此功能放在Convolution2D中更灵活。
答案 1 :(得分:0)
上面公认的答案提到了Keras中的ZeroPadding2D层。但是,如果您想使用Keras未提供的其他填充(例如反射填充),则应自己实现。
据我所知,在Keras中有两种自定义填充层的方法: 1.在Keras中使用Lambda层,然后从Keras的后端(通常是TensorFlow)调用padding函数。 2.定义自己的Layer类。有关更多详细信息,请参见this question。