【问题标题】:Keras acc and val_acc are not displayed on the progress bar of the trainingKeras acc 和 val_acc 不显示在训练的进度条上
【发布时间】:2019-12-14 21:37:36
【问题描述】:

我使用 CNN 进行语义分割,创建 4 个输出分支,并自定义损失函数。

我正在使用以下版本:

  • Keras 2.2.4
  • Python 3.6.8
  • 张量流 1.12.0

我训练的时候,进度条上不显示acc和val_acc,但是正常显示loss和val_loss。

 436/436 [==============================] - 160s 367ms/step - loss: 0.4628 - output_0_loss: 0.0351 - output_1_loss: 0.0698 - output_2_loss: 0.1572 - output_3_loss: 0.2008 - output_0_acc: 0.6728 - output_1_acc: 0.6944 - output_2_acc: 0.8087 - output_3_acc: 0.7010 - val_loss: 0.3001 - val_output_0_loss: 0.0145 - val_output_1_loss: 0.0261 - val_output_2_loss: 0.1511 - val_output_3_loss: 0.1083 - val_output_0_acc: 0.9742 - val_output_1_acc: 0.8642 - val_output_2_acc: 0.7887 - val_output_3_acc: 0.8423

我的损失函数是binary_crossentropy,我使用的度量是['accuracy']:

model.compile(loss=my_binary_crossentropy,
                  optimizer=optimizer_name,
                  metrics=['accuracy'])

历史上的acc和val_acc都是None:

epoch-loss:[0.44138801848175424, 0.31117319703451685] epoch-acc:[None, None] epoch-val_loss:[0.2681478185099933, 0.21369548345525233] epoch-val_acc:[None, None]

我应该如何处理这个问题或在哪里调试它?

【问题讨论】:

  • 请不要不要使用 cmets 空间添加此类信息 - 改为编辑和更新您的帖子
  • 进度条中有条目output_X_accval_output_X_acc,它们确实提供了每个输出所需的精度(另请参见下面的答案)。

标签: python tensorflow keras


【解决方案1】:

您有一个具有多个输出的模型,为了训练这个模型,keras 将使用单个损失函数,该函数是每个输出的损失的加权组合,但对于非损失指标则不能这样做。 准确性仅针对单个输出定义,因此您会为每个输出获得一个准确性训练/验证指标,这是正确的行为。不会有任何accval_acc 用于整个模型。

【讨论】:

    猜你喜欢
    • 2020-03-25
    • 2019-09-24
    • 2017-12-25
    • 2017-10-14
    • 2016-12-31
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 2019-07-09
    相关资源
    最近更新 更多