[英]ValueError: Input 0 of layer "sequential" is incompatible with the layer: expected shape=(None, 223461, 5), found shape=(None, 5)
[英]ValueError: Input 0 of layer "sequential" is incompatible with the layer: expected shape=(None, 90), found shape=(None, 2, 90)
使用 Keras 預測 function 時,任何人都可以幫助解決以下問題嗎?預測數據集的輸入形狀似乎正在改變(預測似乎在第一維中添加了“無”)。
scaler = MinMaxScaler()
scaler2 = MinMaxScaler()
normalized_data = scaler.fit_transform(dataset)
normalized_predict_data = scaler2.fit_transform(predict_dataset)
x = normalized_data[:, 0:90]
y = normalized_data[:, 90]
z = normalized_predict_data[:, 0:90]
print(z.shape)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=10)
print(x_train.shape, x_test.shape, y_train.shape, y_test.shape)
model = Sequential()
model.add(Dense(4, input_dim=90, activation='relu'))
model.add(Dense(32, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(16, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
history = model.fit(x_train, y_train, validation_split=0.33, epochs=50, batch_size=100, verbose=0)
loss, accuracy = model.evaluate(x_test, y_test, verbose=0)
print("Model loss: %.2f, Accuracy: %.2f" % ((loss * 100), (accuracy * 100)))
Xnew = z
ynew = model.predict(array([Xnew]))
for item in Xnew:
print("X=%s, Predicted=%s" % (item, ynew[0]))
當調用 print function 來顯示預測數據集的形狀時,它會按預期打印出 (2, 90)(2 行數據和 90 個輸入)
當嘗試使用預測 function 時,它會打印以下錯誤:
ValueError: Input 0 of layer "sequential" is incompatible with the layer: expected shape=(None, 90), found shape=(None, 2, 90)
該錯誤是由此代碼行ynew = model.predict(array([Xnew]))
引起的。
請從此行中刪除數組並使用: ynew = model.predict(Xnew)
我已經用鮑魚數據集復制了類似的代碼,並附上了這個要點供您參考。
以下任一項對我有用(我的 model 被訓練接受 2D 輸入):
X_new = [[-1.0, -1.0]]
model.predict(X_new)
或者
X_new = [-1.0, -1.0]
model.predict([X_new])
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.