padding='Same'
在 Keras 中意味着当输入大小和内核大小不完全匹配时,根据需要添加填充以弥补重叠。
填充='相同'的示例:
# Importing dependency
import keras
from keras.models import Sequential
from keras.layers import Conv2D
# Create a sequential model
model = Sequential()
# Convolutional Layer
model.add(Conv2D(filters=24, input_shape=(5,5,1), kernel_size=(2,2), strides =(2,2) ,padding='Same'))
# Model Summary
model.summary()
代码的输出 -
Model: "sequential_20"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d_28 (Conv2D) (None, 3, 3, 24) 120
=================================================================
Total params: 120
Trainable params: 120
Non-trainable params: 0
_________________________________________________________________
图示:
下图显示了当 padding='Same' 时输入的填充 (input_shape=(5,5,1), kernel_size=(2,2), strides =(2,2))。
-------------------------------------------------- -------------------------------------------------- --------------
padding='Valid'
在 Keras 中表示不添加填充。
padding='Valid' 的示例: Conv2D 使用了与 padding = 'Same' 相同的输入。即 (input_shape=(5,5,1), kernel_size=(2,2), strides =(2, 2))
# Importing dependency
import keras
from keras.models import Sequential
from keras.layers import Conv2D
# Create a sequential model
model = Sequential()
# Convolutional Layer
model.add(Conv2D(filters=24, input_shape=(5,5,1), kernel_size=(2,2), strides =(2,2) ,padding='Valid'))
# Model Summary
model.summary()
代码的输出 -
Model: "sequential_21"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d_29 (Conv2D) (None, 2, 2, 24) 120
=================================================================
Total params: 120
Trainable params: 120
Non-trainable params: 0
_________________________________________________________________
图示:
下图显示当 padding='Valid' 时没有为输入 (input_shape=(5,5,1), kernel_size=(2,2), strides =(2,2)) 添加填充。
-------------------------------------------------- -------------------------------------------------- --------------
现在让我们尝试我们用于padding='Valid'
输入的相同代码 (input_shape=(6,6,1), kernel_size=(2,2), strides =(2,2))。这里padding='Valid'
的行为应该与padding='Same'
.
代码 -
# Importing dependency
import keras
from keras.models import Sequential
from keras.layers import Conv2D
# Create a sequential model
model = Sequential()
# Convolutional Layer
model.add(Conv2D(filters=24, input_shape=(6,6,1), kernel_size=(2,2), strides =(2,2) ,padding='Valid'))
# Model Summary
model.summary()
代码的输出 -
Model: "sequential_22"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d_30 (Conv2D) (None, 3, 3, 24) 120
=================================================================
Total params: 120
Trainable params: 120
Non-trainable params: 0
_________________________________________________________________