K.cast 是否有可微分的替代方案?

Is there a differentiable alternative to K.cast?

对于自定义 Keras 损失函数,我需要从布尔张量创建浮点张量。不幸的是,K.cast() 不可微分,因此不能使用。有没有其他可区分的方法来做到这一点?

less_than_tau = y_pred < tau
less_than_tau = K.cast(less_than_tau, 'float32')

博士。史努比是对的。

你在深度学习中解决这个问题的方法是“软”函数,比如 softmax 而不是 max。

在你的例子中,如果你想最小化 y-pred 相对 y-tau,你会做类似的事情

switch = sigmoid(y_pred - y_tau)
loss = switch * true_case + (1. - switch) * false_case