当我使用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)
答案 0 :(得分:0)
我知道答案。
此错误是由参数的相反顺序引起的。
权利是:
tf.losses.softmax_cross_entropy(logits = logits, onehot_labels = one_hot_labels)