编辑:同样可以帮助您了解,是否有可能分别获得回归和分类的角膜损失?我只能得到两者的汇总。
我想在model.fit()之后获得Keras计算的总损耗(有关更多信息,请参见this)。
我创建了一个自定义的回调函数,它代替了keras验证。因此,我在那里使用自己的会话来完全控制它。我已经覆盖了on_epoch_end循环,并且我试图在那里获得total_loss值。
代码类似于:
# self.model is a tf.keras.models.Model
def on_epoch_end():
[...]
total_loss = sess.run([self.model.total_loss]) # error here
[...]
我得到的错误是这个:
File "/home/.../callbacks/evaluations/evaluation.py", line 63, in on_epoch_end
[..., self.model.total_loss]
│ │ └ <tf.Tensor 'loss/add_1:0' shape=() dtype=float32>
│ └ <tensorflow.python.keras.engine.training.Model object at 0x7f11a25394e0>
└ <factory.callbacks.evaluations.evaluation.BaseEvaluationCallback object at 0x7f11a1ea2400>
tensorflow.python.framework.errors_impl.InvalidArgumentError: 2 root error(s) found.
(0) Invalid argument: You must feed a value for placeholder tensor 'classification_target' with dtype float and shape [?,?,?]
[[node classification_target (defined at home/.../trainer.py:91) ]]
[[loss/add_1/_945]]
(1) Invalid argument: You must feed a value for placeholder tensor 'classification_target' with dtype float and shape [?,?,?]
[[node classification_target (defined at home/.../trainer.py:91) ]]
如果有人对如何解决此问题有任何想法,我将很高兴听到。