import tensorflow as tf
x=tf.Variable([1,2])
a=tf.constant([3,3])
#增加一个减法op
sub=tf.subtract(x,a)
#增加一个加法op
add=tf.add(x,sub)
init=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(sess.run(sub))
print(sess.run(add))
注意:
1tensorflow中要使用变量Variable的话,必须先对它进行初始化操作,否则会报错
2 tf.global_variables_initializer() 是对全局的Variable进行初始化
第二个程序(输出自增1):
#创建一个变量初始化为0
state=tf.Variable(0,name='counter')
#创建一个op,作用是使state加1
new_value=tf.add(state,1)
#赋值op
update=tf.assign(state,new_value)
#变量初始化
init=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(sess.run(state))
#print(state)
for _ in range(5):
sess.run(update)
print(sess.run(state))
注意:
1上面注释的print(state),如果执行,会这样输出:
<tf.Variable 'counter_4:0' shape=() dtype=int32_ref>
而如果执行print(sess.run(state)),会输出: 0
可以看到区别了
2如果执行print(update),会这样输出:
Tensor("Assign_3:0", shape=(), dtype=int32_ref)
可以这样理解tensorflow的语句:
语句中等号 = 左边是一定是输出的数据(tensor或者Variable),而且一定与等号右边的tf函数内的参数有某种数值关系。另外,想操控任何数据必须通过建立操作节点op。实际上tensorflow有两个阶段,一个是计算图的构建阶段(构建数据和操作节点),一个是整个计算图的执行阶段。