`tensorflow`中有一个计算梯度的函数`tf.gradients(ys, xs)`，要注意的是，`xs`中的`x`必须要与`ys`相关，不相关的话，会报错。 代码中定义了两个变量`w1``w2`， 但`res`只与`w1`相关

```#wrong
import tensorflow as tf

w1 = tf.Variable([[1,2]])
w2 = tf.Variable([[3,4]])

res = tf.matmul(w1, [[2],[1]])

with tf.Session() as sess:
tf.global_variables_initializer().run()
print(re)```

```# right
import tensorflow as tf

w1 = tf.Variable([[1,2]])
w2 = tf.Variable([[3,4]])

res = tf.matmul(w1, [[2],[1]])

with tf.Session() as sess:
tf.global_variables_initializer().run()
print(re)
#  [array([[2, 1]], dtype=int32)]```

```import tensorflow as tf

w1 = tf.get_variable('w1', shape=[3])
w2 = tf.get_variable('w2', shape=[3])

w3 = tf.get_variable('w3', shape=[3])
w4 = tf.get_variable('w4', shape=[3])

z1 = w1 + w2+ w3
z2 = w3 + w4

tf.convert_to_tensor([3.,2.,4.])])

with tf.Session() as sess:
tf.global_variables_initializer().run()
```[array([ 2.,  2.,  3.],dtype=float32),
array([ 2.,  2.,  3.], dtype=float32),
array([ 5.,  4.,  7.], dtype=float32),
array([ 3.,  2.,  4.], dtype=float32)]```

```import tensorflow as tf

w1 = tf.Variable(2.0)
w2 = tf.Variable(2.0)

a = tf.multiply(w1, 3.0)

# b=w1*3.0*w2
b = tf.multiply(a_stoped, w2)
#输出

```a = tf.Variable(1.0)
b = tf.Variable(1.0)

with tf.Session() as sess:
tf.global_variables_initializer().run()
#输出 [1.0, 1.0]```

```import tensorflow as tf

w1 = tf.Variable(2.0)
w2 = tf.Variable(2.0)
a = tf.multiply(w1, 3.0)

# b=w1*3.0*w2
b = tf.multiply(a_stoped, w2)

#其它地方都会运行正常，无论是梯度的计算还是变量的更新。总觉着tensorflow这么设计有点不好，
#不如改成流过去的梯度为0

with tf.Session() as sess:
tf.global_variables_initializer().run()
print(sess.run(train_op))
print(sess.run([w1, w2]))```

## 高阶导数

`tensorflow` 求 高阶导数可以使用 `tf.gradients` 来实现

```import tensorflow as tf

with tf.device('/cpu:0'):
a = tf.constant(1.)
b = tf.pow(a, 2)

with tf.Session() as sess:

Note: 有些 op，tf 没有实现其高阶导的计算，例如 tf.add …, 如果计算了一个没有实现 高阶导的 op的高阶导， gradients 会返回 None。

87 篇文章30 人订阅

0 条评论

## 相关文章

672

### Stanford机器学习笔记-5.神经网络Neural Networks (part two)

5 Neural Networks (part two) content: 　　5 Neural Networks (part two) 　　　　5.1 cos...

35510

2844

2748

### 机器学习决策树：提炼出分类器算法

? 前面三天推送了决策树的基本原理和选择最佳分裂特征的几种公式，用到决策树一般都会出现过拟合问题，因此需要对决策树进行剪枝，阐述了常用的几种剪枝的方法（这些方...

3228

### Deep learning基于theano的keras学习笔记（1）-Sequential模型

《统计学习方法》中指出，机器学习的三个要素是模型，策略和优算法，这当然也适用于深度学习，而我个人觉得keras训练也是基于这三个要素的，先建立深度模型，然后选用...

821

8001

### 13:图像模糊处理

13:图像模糊处理 总时间限制: 1000ms 内存限制: 65536kB描述 给定n行m列的图像各像素点的灰度值，要求用如下方法对其进行模糊化处理： 1....

3335

3626

3558