【问题标题】:AttributeError: 'Tensor' object has no attribute 'numpy' in custom loss function (Tensorflow 2.1.0)AttributeError:“Tensor”对象在自定义损失函数中没有属性“numpy”(Tensorflow 2.1.0)
【发布时间】:2020-07-18 17:06:16
【问题描述】:

我想用自定义损失函数训练一个模型,为此,我需要在下面的方法中将张量转换为 numpy 数组:

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

但我有这个错误:

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

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

【问题讨论】:

    标签: python numpy tensorflow loss-function loss


    【解决方案1】:

    答案是:将run_eagerly=True 放入model.compile

    【讨论】:

      【解决方案2】:

      你做对了,目前只有 Tensorflow 2.1 在这方面被破坏了。如果您在未启用急切模式的情况下运行代码,通常会发生这种情况。然而,Tensorflow 2 默认以 Eager 模式运行……或者至少应该如此。该问题已被跟踪here

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

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

      【讨论】:

      • 使用model.run_eagerly = True 错误依然存在!
      • @FrancescoScala 试试第一个选项,
      • 试过了:tf 2.0.1, 2.1.0, 2.2.0rc2, tb-nightly (2.3.0something) 我每次都遇到同样的错误!
      猜你喜欢
      • 2019-01-24
      • 2022-10-24
      • 2021-11-03
      • 2023-02-02
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多