簡體   English   中英

keras.Model 中輸入的附加維度從何而來?

[英]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,因此批處理軸。

這就是TensorFlowKeras的構建方式,即使對於單個預測,您也需要添加批處理軸(批處理大小為 1 == 1 個單個示例)。

您可以使用np.expand_dims(input,axis=0)tf.expand_dims(input,axis=0)將輸入轉換為適合預測的格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM