【问题标题】:How does Keras evaluate loss on test set?Keras 如何评估测试集的损失?
【发布时间】:2017-01-30 15:19:09
【问题描述】:

我正在实现一个神经网络分类器,以打印我正在使用的这个 NN 的损失和准确性:

score = model.evaluate(x_test, y_test, verbose=False) 
model.metrics_names
print('Test score: ', score[0])    #Loss on test
print('Test accuracy: ', score[1])

我想知道 Keras 如何计算模型的损失。特别是是否在测试集的第一步(也是唯一一步)进行评估。 我在keras.io 上进行了搜索,但没有找到任何相关信息。

【问题讨论】:

    标签: keras


    【解决方案1】:

    来自documentation

    评估

    逐批计算一些输入数据的损失。

    退货

    标量测试损失(如果模型没有指标)或标量列表(如果模型计算其他指标)。 model.metrics_names 属性将为您提供标量输出的显示标签。

    因此,它会返回代表损失的单个值,或与添加到模型中的不同指标相对应的值列表。这些值是基于整个测试集计算的,即。 e. x_testy_test 中的所有值。

    【讨论】:

    • 除了使用循环并一次对 1 个测试数据调用评估之外,还有其他方法可以让每个测试数据丢失吗?
    【解决方案2】:

    首先,打印model.metrics_names。假设输出为['loss', 'accuracy']

    那么你可以这样做:

    [test_loss,test_acc] = model.evaluate(X_test,y_test)
    print('test accuracy: ',test_acc*100,'%')
    print('test loss: ',test_loss)
    

    【讨论】:

      猜你喜欢
      • 2019-04-28
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      • 2019-08-25
      • 2021-11-19
      • 2018-11-24
      相关资源
      最近更新 更多