在keras的Convolution2D文档中,我发现没有关于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
论点是
"有效"、"相同"或"完整"。("full"需要Theano后端。
valid
和same
也是TensorFlow的conv2d函数中的参数。
定义填充,如何设置其值?
你想要的是ZeroPadding2D层,只需将其放在卷积层之前即可。这比仅仅将此功能放在 Convolution2D 中更灵活。
上面接受的答案提到了Keras中的ZeroPadding2D层。但是,如果要使用 Keras 未提供的一些其他类型的填充,例如反射填充,则应自行实现它们。
据我所知,有两种方法可以在 Keras 中自定义填充层:1. 在 Keras 中使用 Lambda 层,并从 Keras 的后端(通常是 TensorFlow)调用填充函数。2. 定义您自己的图层类。有关更多详细信息,请参阅此问题。