[英]where does the additional dimension of the Input in a keras.Model come from?
當我像這樣定義 model 時:
import tensorflow as tf
from tensorflow.keras import layers
import numpy as np
input_shape = (20,20)
input = tf.keras.Input(shape=input_shape)
nn = layers.Flatten()(input)
nn = layers.Dense(10)(nn)
output = layers.Activation('sigmoid')(nn)
model = tf.keras.Model(inputs=input, outputs=output)
為什么我需要在我的實際輸入中添加另一個維度:
actual_input = np.ones((1,20,20))
prediction = model.predict(actual_input)
為什么我不能只做actual_input = np.ones((20,20))
?
編輯:
在文檔中,它說了一些關於batchsize 的信息。這個batchsize 是否與我的問題有關? 如果是這樣,當我想用我的 model 進行預測時,我為什么需要它? 謝謝你的幫助。
在Keras
( TensorFlow
) 中,無法預測單個輸入。 因此,即使你有一個例子,你也需要給它添加batch_axis
。
實際上,在這種情況下,批處理大小為 1,因此批處理軸。
這就是TensorFlow
和Keras
的構建方式,即使對於單個預測,您也需要添加批處理軸(批處理大小為 1 == 1 個單個示例)。
您可以使用np.expand_dims(input,axis=0)
或tf.expand_dims(input,axis=0)
將輸入轉換為適合預測的格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.