【tensorflow】- 知识点补充

1.1 自动求导函数:

GradientTape(persistent=False, watch_accessed_variables=True)
persistent: 布尔值,用来指定新创建的gradient tape是否是可持续性的。默认是False,意味着只能够调用一次GradientTape()函数。
watch_accessed_variables: 布尔值,表明GradientTape()函数是否会自动追踪任何能被训练的变量。默认是True。要是为False的话,意味着你需要手动去指定你想追踪的那些变量。

1.2 监视非Variable变量

tape.watch(tensor)
tape.watch()用于跟踪指定的tensor变量。由于GradientTape()默认只对tf.Variable类型的变量进行监控。

2 tensor=tf.constant([1, 2], dtype=tf.float32)

为查看结果必须创建一个会话,并用取值函数eval()来查看创建的tensor的值:

sess=tf.Session()
with sess.as_default():
print('结果是:', tensor.eval())
1
2
3
结果是:1
1
而如果value是一个列表:
tensor=tf.constant([1, 2])
sess=tf.Session()
with sess.as_default():
print('结果是:', tensor.eval())
1
2
3
4

结果是:[1 2]
1
后面四个参数可写可不写,第二个参数表示数据类型,一般可以是tf.float32, tf.float64等:

tensor=tf.constant([1, 2], dtype=tf.float32)
sess=tf.Session()
with sess.as_default():
print('结果是:', tensor.eval())
1
2
3
4

结果是: [1. 2.]
1
注意到数据类型相比之前发生了改变,因为这次我们指定了数据类型为float32,所以不是1 2,而是1. 2.。
第三个参数表示张量的“形状”,即维数以及每一维的大小。如果指定了第三个参数,当第一个参数value是数字时,张量的所有元素都会用该数字填充:

tensor=tf.constant(-1, shape=[2, 3])
sess=tf.Session()
with sess.as_default():
print('结果是:', tensor.eval())
1
2
3
4
结果是: [[-1 -1 -1]
[-1 -1 -1]]

3np.meshgrid(x,y)

比如x有4个元素,y有3个元素,故生成的矩阵为3行4列的矩阵,形状固定,矩阵z,s的元素对应x,y本身元素的复制,但x作为z的行向量,y作为s的列向量。

猜你喜欢

转载自blog.csdn.net/qq_44859533/article/details/128483390
今日推荐