【问题标题】:replace elements of prediction in custom loss function for tensor flow在 tensorflow 的自定义损失函数中替换预测元素
【发布时间】:2021-02-03 03:07:45
【问题描述】:

我正在使用分类模型,但想编写我的自定义损失函数,仅当 softmax 值大于 0.75 时,才将三个类别中的两个类别的值视为 1。如果其他两个类别都为零,则将第三个类别的值设置为 1。

def custom_loss(y_true, y_pred):
    y_pred[:,0][y_pred[:,0] > 0.75] = 1
    y_pred[:,0][y_pred[:,0] < 0.75] = 0
    y_pred[:,2][y_pred[:,2] > 0.75] = 1
    y_pred[:,2][y_pred[:,2] < 0.75] = 0
    y_pred[:,1] = 1 - y_pred[:,0] - y_pred[:,2]
    squared_difference = tf.square(y_true - y_pred)
    return tf.reduce_mean(squared_difference, axis=-1)

但是我得到了错误

  y_pred[:,0][y_pred[:,0] > 0.75] = 1

TypeError: 'Tensor' object does not support item assignment

有没有办法使用 TensorFlow 函数实现相同的功能。

问候

【问题讨论】:

    标签: tensorflow2.0 tf.keras


    【解决方案1】:

    y_pred = y_pred.numpy()

    成功了。

    【讨论】:

      猜你喜欢
      • 2018-10-28
      • 2017-12-29
      • 1970-01-01
      • 2019-12-16
      • 2020-07-29
      • 2019-12-05
      • 2018-12-28
      • 2022-06-13
      • 2020-10-21
      相关资源
      最近更新 更多