如何在Tensorflow中反向传播期间得到非训练变量的梯度

时间:2018-05-29 23:45:50

标签: python tensorflow

Tensorflow优化器中的API函数def main() : name = [] print("Please input names one-by-one for validation.") diffPasswords = input("Input END after you've entered the last name.") while True : if 仅返回可训练变量的梯度,例如每个层的权重或偏差以及可训练参数。 是否有可能获得不可训练变量的梯度,例如每层的dL / dx或dL / dy? 如果没有与此功能相对应的API函数,是否可以手动获取这些变量的梯度?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用tf.gradients明确计算渐变:

import tensorflow as tf

x = tf.Variable(1., trainable=False)
y = x**2
g = tf.gradients(y, [x])

sess = tf.InteractiveSession()
tf.global_variables_initializer().run()
print(g[0].eval())
# 2.0

有趣的是,如果x是常数,这也有效:

x = tf.constant(1.)