tf.keras.layers.Flatten()我已經看到(例如此處)和tf.keras.layers.Input()(例如此處)的多種用途。閱讀檔案后,我不清楚
- 他們中的任何一個是否使用另一個
- 在向模型引入輸入層時兩者是否可以互換使用(假設使用維度
(64, 64))
uj5u.com熱心網友回復:
我認為混亂來自使用tf.keras.Sequential不需要顯式Input層的模型。考慮以下兩個模型,它們是等效的:
import tensorflow as tf
model1 = tf.keras.Sequential([
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(5, activation='relu'),
])
model1.build((1, 28, 28, 1))
model2 = tf.keras.Sequential([
tf.keras.layers.Input((28, 28, 1)),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(5, activation='relu'),
])
不同之處在于我明確設定了model2使用Input圖層的輸入形狀。在model1,當您將真實資料傳遞給它或呼叫時,將推斷輸入形狀model.build。
現在關于Flatten層,該層只是將 n 維張量(例如(28, 28, 1))轉換為一維張量(28 x 28 x 1)。Flatten層和Input層可以共存于模型中,Sequential但不相互依賴。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/437200.html
