簡體   English   中英

Python Keras Model -- ValueError: Layer sequential expects 1 input(s), but it received 16 input tensors

[英]Python Keras Model -- ValueError: Layer sequential expects 1 input(s), but it received 16 input tensors

我已經看到許多其他人在 stackoverflow 上發布了關於同樣的問題,但我一直無法弄清楚如何將這些解決方案應用到我的示例中。

我一直致力於創建一個 model 來根據包含 16 個特征的數據集預測 0 或 1 的結果——一切似乎都運行良好(准確性評估、紀元完成等)。

如前所述,我的訓練特征包括 16 個不同的變量,但是當我傳入一個包含 16 個獨立於訓練數據集的唯一值的列表以嘗試做出單獨的預測(0 或 1)時,我收到此錯誤:

ValueError: Layer sequential_11 expects 1 input(s), but it received 16 input tensors.

這是我的代碼 -

y = datas.Result
X = datas.drop(columns = ['Date', 'home_team', 'away_team', 'home_pitcher', 'away_pitcher', 'Result'])

X = X.values.astype('float32')
y = y.values.astype('float32')

X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.2)
X_train, X_validation, y_train, y_validation = train_test_split(X, y, test_size = 0.2)

model=keras.Sequential([
           keras.layers.Dense(32, input_shape = (16,)),
           keras.layers.Dense(20,activation=tf.nn.relu),                           
           keras.layers.Dense(2,activation='softmax')
        ])

model.compile(optimizer='adam',
                loss='sparse_categorical_crossentropy',
                metrics=['acc'])

history = model.fit(X_train,y_train,epochs=20, validation_data=(X_validation, y_validation))

#all variables within features list are single values, ex: .351, 11, .991, etc.
features = [t1_pqm,t2_pqm,t1_elo,t2_elo,t1_era,t2_era,t1_bb9,t2_bb9,t1_fip,t2_fip,t1_ba,t2_ba,t1_ops,t2_ops,t1_so,t2_so]
prediction = model.predict(features)

model 期望形狀為(None,16)的輸入,但特征具有形狀(16,) (一維列表)。 最簡單的解決方案是使其成為具有正確形狀(1, 16)的 numpy 數組:

features = np.array([[t1_pqm,t2_pqm,t1_elo,t2_elo,t1_era,t2_era,t1_bb9,t2_bb9,t1_fip,t2_fip,t1_ba,t2_ba,t1_ops,t2_ops,t1_so,t2_so]])

暫無
暫無

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

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