当前位置:  开发笔记 > 编程语言 > 正文

tf.gradients如何在TensorFlow中工作

如何解决《tf.gradients如何在TensorFlow中工作》经验,为你挑选了1个好方法。

鉴于我有一个线性模型如下,我想得到关于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 and b:

grads = tf.gradients(cost, tf.all_variable())

我的占位符也将包括在内(X和Y).即使我确实得到了一个渐变,[x,y,w,b]我怎么知道渐变中哪个元素属于每个参数,因为它只是一个没有名称的列表,哪个参数与衍生物有关?

在这个问题中,我正在使用此代码的一部分,并在此问题的基础上构建.



1> Priyatham..:

引用文档 tf.gradients

在xs中构造ys wrt x之和的符号偏导数.

所以,这应该工作:

dc_dw, dc_db = tf.gradients(cost, [W, b])

这里,tf.gradients()cost第二个参数中每个张量的wrt 的梯度作为相同顺序的列表返回.

阅读tf.gradients以获取更多信息.


谢谢一个小例子让一切变得与众不同!
推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有