Keras acc和val_acc未显示在训练的进度条上

时间:2019-08-07 09:30:00

标签: python tensorflow keras

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

我正在使用以下版本:

  • Keras 2.2.4
  • Python 3.6.8
  • tensorflow 1.12.0

我训练时,进度条上没有显示acc和val_acc,但是通常显示出损失和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]

我应该如何处理此问题或在哪里进行调试?

1 个答案:

答案 0 :(得分:0)

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