假设我有一个线性模型如下,我想得到关于W和b的梯度向量。
# tf Graph Input
X = tf.placeholder("float")
Y = tf.placeholder("float")
# Set model weights
W = tf.Variable(rng.randn(), name="weight")
b = tf.Variable(rng.randn(), name="bias")
# Construct a linear model
pred = tf.add(tf.mul(X, W), b)
# Mean squared error
cost = tf.reduce_sum(tf.pow(pred-Y, 2))/(2*n_samples)
然而,如果我尝试像这样使用成本是一个关于
cost(x,y,w,b)
的函数,而我仅希望获得关于w和b
的梯度:grads = tf.gradients(cost, tf.all_variable())
我的占位符也将包含(X和Y)。即使我使用
[x,y,w,b]
获得了一个渐变,我如何知道渐变中的每个元素属于哪个参数,因为它只是一个没有名称的列表,不知道导数是针对哪个参数进行的?在这个问题中,我使用了code的部分,并且基于this的问题。