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
对于自定义 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