我正在尝试创建一个能够预测英超联赛比赛结果的模型。当我尝试这样做时,模型在训练时给我50-66的准确率,而在用一些测试数据测试时却给出0的准确率。我刚开始使用Keras和TensorFlow,所以我为我的糟糕代码道歉。
from tensorflow import kerasimport numpy as npimport pandas as pdfrom tensorflow.python.keras.layers.core import Dropoutx_train = np.random.randint(0, 43, size=(4000, 2))x_test = np.random.randint(0, 43, size=(2000, 2))y_train = np.random.randint(0, 2, size=(4000))y_test = np.random.randint(0, 2, size=(2000))model = keras.models.Sequential( [ keras.layers.Embedding(5000, 43), keras.layers.Conv1D( filters=43, kernel_size=3, padding="same", activation="relu" ), keras.layers.MaxPooling1D(pool_size=2), keras.layers.LSTM(100), keras.layers.Dropout(0.2), keras.layers.Dense(1, activation="sigmoid"), ])model.compile(optimizer="adam", loss="binary_crossentropy", metrics=["accuracy"])model.fit(x_train, y_train, epochs=5)acc = model.evaluate(x_test)print(acc)
这是输出结果:
----Epoch 1/5125/125 [==============================] - 1s 4ms/step - loss: 0.6716 - accuracy: 0.5663Epoch 2/5125/125 [==============================] - 1s 4ms/step - loss: 0.6320 - accuracy: 0.6357Epoch 3/5125/125 [==============================] - 1s 4ms/step - loss: 0.6244 - accuracy: 0.6457Epoch 4/5125/125 [==============================] - 1s 5ms/step - loss: 0.6208 - accuracy: 0.6578Epoch 5/5125/125 [==============================] - 1s 6ms/step - loss: 0.6183 - accuracy: 0.6585**89/89 [==============================] - 0s 1ms/step - loss: 0.0000e+00 - accuracy: 0.0000e+00****[0.0, 0.0]**
回答:
您需要提供评估的目标数据。即:
acc = model.evaluate(x_test,y_test)