一、变量(Variable)的说明
- Tensorflow中,变量(Variable)是特殊的张量(Tensor),Variable是包含张量的内存缓冲。
- 与其他张量不同,变量存在于单个sess.run() 调用的上下文之外,即变量存储是持久的张量,当训练模型时,用变量来存储和更新参数,
- 变量的初始化必须在模型的其它操作运行之前先明确地完成,在调用op之前,所有变量都应该被显示的初始化。
二、代码实例
1、减法、加法的实现
- 引入Tensorflow
import tensorflow as tf
- 定义一个变量和常量
# 定义一个变量和常量
x = tf.Variable([1,2])
a = tf.constant([3,3])
- 定义具体操作
#定义一个减法op
#按shift+table键,可以查看函数的信息,按两次可以查看函数的详细信息
sub = tf.subtract(x,a)
#定义一个加法op
add = tf.add(x,sub)
- 变量的初始化
#变量的初始化(一定要进行)
init = tf.global_variables_initializer()
- 定义会话,调用op,实现相应的功能
#定义一个会话
with tf.Session() as sess:
#执行变量的初始化
sess.run(init)
print(sess.run(sub))
print(sess.run(add))
- 结果
2、循环操作
import tensorflow as tf
#创建一个变量初始化为0
state = tf.Variable(0, name = 'counter')
#创建一个op,作用是使state加1
new_state = tf.add(state,1)
#赋值操作op,tensorflow中不能使用直接赋值符号
update = tf.assign(state, new_state)
#变量的初始化
init = tf.global_variables_initializer()
#定义会话
with tf.Session() as sess:
sess.run(init)
print(sess.run(state))
for _ in range(5):
sess.run(update)
print(sess.run(state))
- 结果