检查通过看不见的数据评估KERAS模型的方式是否正确



我研究了Keras,并创建了我的第一个神经网络模型,如以下内容:

from keras.layers import Dense
import keras
from keras import Sequential
from sklearn.metrics import accuracy_score
tr_X, tr_y = getTrainingData()
# NN Architecture
model = Sequential()
model.add(Dense(16, input_dim=tr_X.shape[1]))
model.add(keras.layers.advanced_activations.PReLU())
model.add(Dense(16))
model.add(keras.layers.advanced_activations.PReLU())
model.add(Dense(1, activation='sigmoid'))
# Compile the Model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Fit the Model
model.fit(tr_X, tr_y, epochs=1000, batch_size=200, validation_split=0.2)
# ----- Evaluate the Model (Using UNSEEN data) ------
ts_X, ts_y = getTestingData()
yhat_classes = model.predict_classes(ts_X, verbose=0)[:, 0]
accuracy = accuracy_score(ts_y, yhat_classes)
print(accuracy)

我不确定代码的最后一部分,即使用model.predict_classes()的模型评估,其中通过自定义方法getTestingData()加载了新数据。请参阅我的目标是使用新看不见的数据测试最终模型以评估其预测。我的问题是关于这部分的:我是否正确评估了模型?

谢谢,

是的,这是正确的。您可以使用预测或预测classes来获取测试数据的预测。如果您需要损失&指标直接可以通过喂食ts_x和ts_y。

使用评估方法。
y_pred = model.predict(ts_X)
loss, accuracy = model.evaluate(ts_X, ts_y)

https://keras.io/models/model/#predict

https://keras.io/models/model/#evaluate

预测和amp之间的差异;预测_Classes:"预测"有什么区别和"预测_class"Keras中的功能?

最新更新