evaluate
方法的返回值取决于模型的结构和设置:
-
如果模型只有一个输出且没有指标,返回的是一个标量,表示测试损失。
-
如果模型有多个输出和/或指标,返回的是一个标量列表,每个标量对应一个输出或指标的值。
在代码中,你可以根据模型的结构和训练时定义的损失函数以及指标来解析返回值。如果你使用了 return_dict=True
参数,返回的结果将是一个字典,其中键是输出或指标的名称,值是对应的数值。如果 return_dict=False
(默认情况),返回一个标量或标量列表。你可以通过访问 model.metrics_names
属性来获取返回结果的标签。
例如,如果你有一个模型有两个输出,一个是 “loss”,另一个是 “accuracy”,你可以这样处理返回值:
loss_and_metrics = model.evaluate(x_test, y_test)
print("Loss:", loss_and_metrics[0])
print("Accuracy:", loss_and_metrics[1])
或者,如果使用了 return_dict=True
,可以这样:
result_dict = model.evaluate(x_test, y_test, return_dict=True)
print("Loss:", result_dict["loss"])
print("Accuracy:", result_dict["accuracy"])
请根据你具体的模型结构和训练设置进行相应的处理。
学习测试代码
'''
5. 模型评估'''
# 评估模型
score = model.evaluate(x=x_test, y=y_test, verbose=0)
print("测试集上的损失:", score[0])
print("测试集上的准确率:", score[1])
plot_model(model=model, to_file='wdcnn.png', show_shapes=True)
运行结果
Epoch 20/20
39/39 [==============================] - 1s 17ms/step - loss: 0.0293 - accuracy: 0.9947 - val_loss: 0.0561 - val_accuracy: 0.9857
测试集上的损失: 0.05612993985414505
测试集上的准确率: 0.9857142567634583
Process finished with exit code 0