【发布时间】:2018-07-25 12:59:09
【问题描述】:
我需要为 Keras 创建一个仅适用于二进制值的损失函数。想要将所有大于 0.5 的值转换为 1.0,所以我这样做了:
def MyLoss(y_true, y_pred:
y_true_f = K.flatten(y_true)
y_pred_f = K.flatten(K.cast(K.greater(y_pred, 0.5), 'float32'))
#y_pred_f = K.flatten(K.cast(y_pred > 0.5), 'float32')
#y_pred_f = K.flatten(y_pred > 0.5)
return K.sum(y_true_f * y_pred_f)
代码编译,但后来它产生以下错误:
ValueError:不支持任何值。
我也尝试了注释行,同样的错误。如果我不尝试仅使用 y_pred_f = K.flatten(y_pred) 修改值,它就会运行。
我做错了什么?
如何对张量进行二值化?
【问题讨论】:
标签: python machine-learning neural-network keras keras-2