【发布时间】:2020-08-05 00:51:18
【问题描述】:
我正在研究预测值必须为正整数的回归问题。一种方法可能是只训练一个模型,进行预测,然后对预测值进行四舍五入。但是,我想尝试一种不同的方法来修改损失函数。我在 Keras 中这样尝试过:
def my_custom_loss_fn(y_actual, y_predicted):
y_predicted_rounded = K.round(y_predicted)
custom_loss_value = K.sqrt(tf.keras.losses.mean_squared_error(y_actual, y_predicted_rounded))
return custom_loss_value
抛出错误:没有为任何变量提供梯度:...这个问题很可能是因为 K.round 函数没有梯度。
我的问题是:是否有任何其他优雅的方式或什至不同的框架(如 xgboost 等)我可以修改丢失的函数,使得损失是 y_actual 和 y_predicted 的均方根误差已四舍五入。
【问题讨论】:
-
这不是回归问题(输出不连续),是分类问题。
标签: keras regression loss-function