无法获得Keras(空张量)计算的total_loss

时间:2019-12-13 11:04:40

标签: python tensorflow keras

编辑:同样可以帮助您了解,是否有可能分别获得回归和分类的角膜损失?我只能得到两者的汇总。

我想在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) ]]

如果有人对如何解决此问题有任何想法,我将很高兴听到。

0 个答案:

没有答案