我將填充設定為相同或相同,但輸出仍在減少,那有什么問題呢???,據我了解,根據官方檔案,輸出大小應與輸入大小相同,我忘記了什么重要嗎?
import tensorflow as tf
x = tf.keras.Input([120, 120, 3])
conv = tf.keras.layers.Conv2D(filters=3, kernel_size=(3, 3), strides=(2, 2), padding="SAME")(x)
conv = tf.keras.layers.Conv2D(filters=3, kernel_size=(3, 3), strides=(2, 2), padding="SAME")(conv)
model = tf.keras.Model(inputs=[x], outputs=[conv])
model.summary()
image_batch = tf.random.normal(shape=[10, 120, 120, 3])
y_pred = model(image_batch)
print(y_pred.shape)
輸出
odel: "model_7"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_8 (InputLayer) [(None, 120, 120, 3)] 0
_________________________________________________________________
conv2d_11 (Conv2D) (None, 60, 60, 3) 84
_________________________________________________________________
conv2d_12 (Conv2D) (None, 30, 30, 3) 84
=================================================================
Total params: 168
Trainable params: 168
Non-trainable params: 0
_________________________________________________________________
(10, 30, 30, 3)
uj5u.com熱心網友回復:
這是因為strides=(2, 2). 它在卷積操作期間跳過一個步驟,因此在每個卷積層將 h&w 減少 2 倍。

如果你設定strides=(1, 1)它會給出相同的輸出形狀。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/337539.html
