1,python中形參實參
http://www.cnblogs.com/DamianZhou/p/3948898.html
不應隨意改動傳進來的實參,因爲如果傳進來的是數組,形參就引用了實參,那麼在函數改動形參後,實參也會受到影響
import numpy as np
a = np.arange(9).reshape((3,3))
a
def func(b):
b[0,:] = 0
func(a)
# 第一次 array([[0, 1, 2], [3, 4, 5],[6, 7, 8]])
# 第二次 array([[0, 0, 0], [3, 4, 5],[6, 7, 8]])
2,tensorflow中tf.gradients() 返回的是一個list類型,list中元素類型爲tensor。通用情況是:
grads = tf.gradients([x1,x2],y)
grads[0] #y對於x1的gradients
grads[1] #y對於x2的gradients
所以當grads = tf.gradients(x,y)
需要使用grads[0],返回對x的梯度
3,tenosr 轉numpy
https://stackoverflow.com/questions/34097281/how-can-i-convert-a-tensor-into-a-numpy-array-in-tensorflow