【发布时间】:2020-08-25 11:35:43
【问题描述】:
我使用直方图损失作为模型的损失函数,但它提供了 NAN 梯度。 代码sn-p(损失函数):
def histogram_loss(y_true, y_pred):
h_true = tf.histogram_fixed_width( y_true, value_range=(-1., 1.), nbins=20)
h_pred = tf.histogram_fixed_width( y_pred, value_range=(-1., 1.), nbins=20)
h_true = tf.cast(h_true, dtype=tf.dtypes.float32)
h_pred = tf.cast(h_pred, dtype=tf.dtypes.float32)
return K.mean(K.square(h_true - h_pred))
错误信息:
ValueError: An operation has `None` for gradient. Please make sure that all of your ops have a gradient defined (i.e. are differentiable). Common ops without gradient: K.argmax, K.round, K.eval.
为什么会出现值错误(NAN 梯度)?
【问题讨论】:
标签: python tensorflow keras deep-learning loss-function