我正在嘗試訓練一個 Keras 模型,其中奇異輸入是長度為 512 的歸一化浮點陣列。目前我的訓練資料中有 539 個這樣的輸入,但是一旦predict()呼叫該方法就會產生以下錯誤:
Input 0 of layer "dense" is incompatible with the layer: expected min_ndim=2, found ndim=1. Full shape received: (32,)
這是代碼,請注意,我已經嘗試Input()根據我在其他帖子(例如Input(Shape=(1,))和)上找到的建議將不同的形狀傳遞給 ,Input(Shape=(512,))但這些都不起作用。
X = np.array(X) #(539, 512)
y = np.array(y) #(539,)
model = Sequential()
model.add(Input(shape=(None, 512)))
model.add(Dense(64, activation=tf.nn.relu))
model.add(Dense(1, activation=tf.nn.sigmoid))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics='accuracy')
model.fit(X, y, batch_size=4, validation_split=0.1, epochs=5)
prediction = model.predict([X[0]])
uj5u.com熱心網友回復:
好吧,模型期待你 batch_size 也試試這個
model = Sequential()
model.add(Input(shape=(512)))
model.add(Dense(64, activation=tf.nn.relu))
model.add(Dense(1, activation=tf.nn.sigmoid))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics='accuracy')
model.fit(X, y, batch_size=4, validation_split=0.1, epochs=5)
現在,為了預測擴展批量大小的維度
prediction = model.predict(tf.expand_dims(X[0], axis=0))
輸出
1/1 [==============================] - 0s 119ms/step
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/533397.html
