当我使用compute_gradients计算InceptionV4的渐变时,为什么BatchNorm图层的渐变为None?

时间:2017-04-25 04:20:33

标签: python tensorflow deep-learning

当我使用compute_gradients计算InceptionV4的渐变时,为什么BatchNorm图层的渐变为None? 当我得到InceptionV4模型的梯度。每个BatchNorm图层中都会显示None的值,我不确定这是否是一个错误。或者,BatchNorm图层没有渐变。

     with slim.arg_scope(inception.inception_v4_arg_scope()):
                logits, endpoints = inception.inception_v4(images,                                         
                num_classes=dataset.num_classes, is_training=True)
     init_fn = get_init_fn()
      # Specify the loss function:
     one_hot_labels = slim.one_hot_encoding(labels, dataset.num_classes)
     tf.losses.softmax_cross_entropy(logits, one_hot_labels)
     total_loss = tf.losses.get_total_loss()
     optimizer = tf.train.AdamOptimizer(learning_rate=0.01)
     grads_and_vars = optimizer.compute_gradients(loss=total_loss)

1 个答案:

答案 0 :(得分:0)

我知道答案。

此错误是由参数的相反顺序引起的。

权利是:

  tf.losses.softmax_cross_entropy(logits = logits, onehot_labels = one_hot_labels)