python中tensor与variable_tensor和Variable

初学tensorflow,有点搞不懂 tensor和Variable的区别,经过思考,得到以下总结!

目录

Tensor

import tensorflow as tf

x = tf.random_uniform([3,3]) #创建一个Tensor

with tf.Session() as sess:

print(type(x))

y = sess.run(x)

print(type(y)) #y是一个numpy.ndarray

print(y)

sess.close()

输出:

[[0.69635034 0.01574457 0.10151494]

[0.22572029 0.58939755 0.6667918 ]

[0.12261796 0.6142607  0.7017566 ]]

Variable

import tensorflow as tf

a = tf.Variable(tf.random_uniform([3,3]))

with tf.Session() as sess_2:

init_op = tf.initialize_all_variables()

sess_2.run(init_op)

print(type(a))

print(sess_2.run(a))

sess_2.close()

输出:

[[0.68190384 0.48186898 0.5836265 ]

[0.7770786  0.28783894 0.60949016]

[0.5110326  0.1956842  0.12324178]]

注意:在TensorFlow中,变量的定义和初始化是分开的,所有关于图变量的赋值和计算都要通过tf.Session的run来进行。想要将所有图变量进行集体初始化时应该使用tf.global_variables_initializer。

总结

Variable和Tensor之间的区别:

1. Variable是可更改的,而Tensor是不可更改的,比如:Tensor不具有assign函数,而Variable含有;

2. Variable用于存储网络中的权重矩阵等变量,而Tensor更多的是中间结果等;

3. Variable是会显示分配内存空间的,需要初始化操作(assign一个tensor),由Session管理,可以进行存储、读取、更改等操作。相反地,诸如Const, Zeros等操作创造的Tensor,是记录在Graph中,所以没有单独的内存空间;而其他未知的由其他Tensor操作得来的Tensor则是只会在程序运行中间出现;

4.tensor和Variable产生的方式也有所不同;

5. Tensor可以使用的地方,几乎都可以使用Variable;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值