如何在Tensorboard中显示所有梯度的列表?
我正在使用 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 教程。