当使用我的自定义损失函数时,我得到这个错误:'Tensor'对象没有属性'_numpy'。

问题描述 投票:0回答:1

我试图为我的CNN创建一个自定义的损失函数,但当我编译模型时,我得到这个错误:'Tensor'对象没有属性'_numpy'.我不知道如何解决它。谁能帮帮我?

def custom_loss(y_true, y_pred):
  y_pred = tf.keras.backend.get_value(y_pred)
  y_true = tf.keras.backend.get_value(y_true)
  errors = []
  for x in range(0,y_pred.shape[0]):
    error = 0
    true_range = np.argmax(y_true[x])
    for i in range(0, y_pred[x].shape[0]):
      error = error + ((i-true_range)**2)*y_pred[x][i]
    errors.append(error)
  return tf.convert_to_tensor(np.array(errors))

model.compile(loss = custom_loss, metrics=['accuracy'], optimizer=keras.optimizers.Adam())
tensorflow keras tensorflow2.0 tensor cnn
1个回答
0
投票

添加 tf.enable_eager_execution() 在你的程序开始的时候。这将增加对numpy的支持。

https:/github.comtensorflowtensorflowissues27519

© www.soinside.com 2019 - 2024. All rights reserved.