如何在Tensorboard中显示所有梯度的列表?

3 投票
1 回答
1795 浏览
提问于 2025-05-18 21:16

我正在使用 Tensorboard 1.5,想看看我的梯度表现得怎么样。

这是我使用的一个层的例子:

net = tf.layers.dense(features, 40, activation=tf.nn.relu, kernel_regularizer=regularizer, 
                        kernel_initializer=tf.contrib.layers.xavier_initializer())

这是我的优化器:

train_op = tf.train.AdamOptimizer(learning_rate = learning_rate).minimize(loss)

对于我的模型参数,我是这样创建摘要的:

for var in tf.trainable_variables():
    tf.summary.histogram(var.name, var)

有没有类似的方法可以在一个循环中获取所有的梯度,以便我可以创建我的摘要?

相关问题:

  • 暂无相关问题
暂无标签

1 个回答

3

你首先需要通过优化器的 compute_gradients 方法来获取梯度,然后把这些梯度传递给总结部分:

opt = tf.train.AdamOptimizer(learning_rate = learning_rate)

# Calculate the gradients for the batch of data
grads = opt.compute_gradients(loss)

# Add histograms for gradients.
for grad, var in grads:
  if grad is not None:
    summaries.append(tf.summary.histogram(var.op.name + '/gradients', grad))

接下来,要进行训练,你可以调用优化器的 apply_gradients 方法:

# Apply the gradients to adjust the shared variables.
train_op = opt.apply_gradients(grads, global_step=global_step)

想了解更多,可以访问 tensorflow cifar10 教程

撰写回答