Machine learning ValueError:没有为任何可变自定义损失提供渐变

Machine learning ValueError:没有为任何可变自定义损失提供渐变,machine-learning,deep-learning,Machine Learning,Deep Learning,我有下面的代码告诉我“Tensorflow没有为任何变量提供梯度” 在这里您可以找到可以执行的代码: 对于梯度问题,您忘记返回损耗,这就是原因 def custom_loss(lam): def loss(y_true, y_pred): # Do your loss on your subset print(y_true) print(y_pred) y_pred_n_aux, y_pred_aux, pseudo_lables = y_pred[:,

我有下面的代码告诉我“Tensorflow没有为任何变量提供梯度”

在这里您可以找到可以执行的代码:


对于梯度问题,您忘记返回损耗,这就是原因

def custom_loss(lam):
  def loss(y_true, y_pred):
    # Do your loss on your subset
    print(y_true) 
    print(y_pred)
    y_pred_n_aux, y_pred_aux, pseudo_lables  = y_pred[:, :1], y_pred[:, 1:1280], y_pred[:, 1280:]
    l1 = tf.nn.softmax_cross_entropy_with_logits(labels=y_pred_n_aux, logits=y_true)
    l2 = tf.nn.softmax_cross_entropy_with_logits(labels=y_pred_aux,logits=pseudo_lables)
    return l1 + lam*l2
  return loss
def custom_loss(lam):
  def loss(y_true, y_pred):
    # Do your loss on your subset
    print(y_true) 
    print(y_pred)
    y_pred_n_aux, y_pred_aux, pseudo_lables  = y_pred[:, :1], y_pred[:, 1:1280], y_pred[:, 1280:]
    l1 = tf.nn.softmax_cross_entropy_with_logits(labels=y_pred_n_aux, logits=y_true)
    l2 = tf.nn.softmax_cross_entropy_with_logits(labels=y_pred_aux,logits=pseudo_lables)
    return l1 + lam*l2
  return loss