前言
tensorflow学习(1)
上一节了解了下tensorflow的一些代码,这一节学习下tensorflow的变量的使用。
代码一
import tensorflow as tf
#定义一个变量
x = tf.Variable([1,2])
#定义一个常量
a = tf.constant([3,3])
#定义一个减法的op
#shift + tab连续两次查看详情
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))
注意事项
- x = tf.Variable([1,2])定义变量时,Variable首字母大写。
- 鼠标光标在某个函数上,shift + tab连续两次可以查看详情
- 使用Variable定义变量需要
tf.global_variables_initializer()
这个操作来初始化,否则将报错Attempting to use uninitialized value Variable_3 - 如果将上述代码中的Variable改成constant则可以不用初始化
代码二
#创建一个变量初始化为0
state = tf.Variable(0,name = 'counter')
#创建一个op,是state加一
new_state = tf.add(state,1)
#赋值操作
update = tf.assign(state,new_state)
#初始化全局变量
init = tf.global_variables_initializer()
with tf.Session() as sess:
#执行初始化
sess.run(init)
print(sess.run(state))
for i in range(5):
sess.run(update)
print(sess.run(state))
注意事项
- 用shift+tab可以查看函数的详情基本上都有一个隐藏的参数name = none,所以可以用tf.Variable(0,name = ‘counter’)这个方式给参数起名字,具体使用后续讲。
- tensorflow的赋值方式update = tf.assign(state,new_state),不可以使用=来赋值。
- tensorflow通过会话中的run来更新变量,执行变量赋值等操作,上述代码中for循环里的sess.run(update),先执行state = tf.Variable(0,name = ‘counter’),然后执行new_state = tf.add(state,1),然后执行update = tf.assign(state,new_state)最后执行sess.run(update)。