常量
在TF中运算不会改变的单元,无需进行初始化操作的类型
创建语句:
constant_name = tf.constant(value)
变量
在TF运行过程中会改变的单元,需要进行初始化操作。定义后无需人工赋值,系统根据算法模型,训练优化过程中自动调整变量对应的数值。特殊情况中如需人工更新,变量赋值语句如需:
update_op = tf.assign(variable_to_be_updated, new_value)
创建语句:
name_variable = tf.Variable(value,name)
所有变量初始化语句:
init = tf.global_variables_initializer()
sess.run(init)
占位符
对于在定义时不知道数值的变量,只有当程序真正运行后才能根据输入得到的,可以用到占位符,创建如下:
tf.placeholder(dtype,shape=None,name=None)
#定义占位符,2行3列,每个元素类型为tf.float32
x=tf.placeholder(tf.float32,[2,3],name='x')
feed提交数据
创建含有占位符的计算图后,当在session中调用run(),placeholder必须通过feed_dict参数传递进去
import tensorflow as tf
a = tf.placeholder(tf.float32,name = 'a')
b = tf.placeholder(tf.float32,name = 'b')
c = tf.add(a,b,name='c')
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
result = sess.run(c,feed_dict={a:3.0,b:4.0})
print(result)
**以上内容来源:**浙江大学城市学院《深度学习应用开发Tensorflow实践》