AttributeError:“ Tensor”对象在自定义损失函数(Tensorflow 2.1.0)中没有属性“ numpy”

时间:2020-04-06 16:17:14

标签: python numpy tensorflow loss-function loss

我想使用自定义损失函数训练模型,为此,我需要在以下方法内将张量转换为numpy数组:

def median_loss_estimation(y_true, y_predicted):
    a = y_predicted.numpy()

但是我有这个错误:

AttributeError: 'Tensor' object has no attribute 'numpy'

为什么? 如何将张量转换为numpy数组?

2 个答案:

答案 0 :(得分:2)

答案是:将run_eagerly=True放在model.compile中!

答案 1 :(得分:1)

您做对了,目前在该方面只有Tensorflow 2.1被破坏了。如果在未启用快速模式的情况下运行代码,通常会发生这种情况。但是,默认情况下,Tensorflow 2在渴望模式下运行...至少应该如此。已跟踪问题here

对此至少有两种解决方案:

  1. 安装最新的每晚版本。
  2. 设置model.run_eagerly = True