Tensor,placeholder与Variable区别

import tensorflow as tf

a = tf.Variable(1.0,name='a')
b = tf.Variable(2.0,name='b')
c = tf.add(a,b)

sess = tf.Session()
sess.run(tf.global_variables_initializer())
print(sess.run(c))
sess.close()

a,b是Variable,而c是Tensor。

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

Variable和Tensor之间的区别:
1. Variable是可更改的,而Tensor是不可更改的。
2. Variable用于存储网络中的权重矩阵等变量,而Tensor更多的是中间结果等。
3. Variable是会显示分配内存空间的,需要初始化操作(assign一个tensor),由Session管理,可以进行存储、读取、更改等操作。相反地,诸如Const, Zeros等操作创造的Tensor,是记录在Graph中,所以没有单独的内存空间;而其他未知的由其他Tensor操作得来的Tensor则是只会在程序运行中间出现。
4. Tensor可以使用的地方,几乎都可以使用Variable。

.tf.Variable与tf.placeholder区别:

tf.Variable适合一些需要初始化或被训练而变化的权重或参数,而tf.placeholder适合通常不会改变的被训练的数据集。

例如:

# 输入的样本
X = tf.placeholder(tf.float32, [784])
y = tf.placeholder(tf.float32, [10])

# 权重参数
W = tf.Variable(tf.float32, [784, 10])
b = tf.Variable(tf.float32, [10]) 


参考文献:https://blog.csdn.net/u013841196/article/details/82960765

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章