Tensorflow之变量赋值输出1+2+3+4+5+6+7+8+...
一、导入tensorflow
import tensorflow as tf
二、定义计算图
(1)常量初始化
constant_name = tf.constant(value)
(2)变量初始化
创建变量:
name_variable = tf.Variable(value,name)
个别变量初始化:
init_op = name_variable.initializer()
所有变量初始化:
init_op = tf.global_variables_initializer()
注:使用Variable变量类型,不进行初始化数值会出错
三、创建会话
创建计算图只是建立静态计算模型,执行对话才能提供数据并获得结果。会话拥有并管理Tensorflow程序运行时的所有资源,当所有计算完成过后需要关闭会话帮助系统回收资源。
sess = tf.Session() #创建一个会话
实际操作:
#创建一个会话,并通过Python中的上下文管理器来管理这个会话
with tf.Session() as sess:
#使用这创建的会话来计算关心的结果
print(sess.run(result))
#不需要再调用函数时关闭会话、释放资源
sess.close()
注:若有变量,要成功运行需增加一个init初始化变量,并调用会话的run命令进行参数初始化:
init = tf.global_variables_initializer()
sess.run(init)
例一:
通过变量赋值输出1+2+3+4+5+6+7+8+9+10
import tensorflow as tf value = tf.Variable(0,name="value") sum = tf.Variable(0,name="sum") one = tf.constant(1) new_value = tf.add(value,one) update_value = tf.assign(value,new_value) #变量更新 new_sum = tf.add(sum,value) update_sum = tf.assign(sum,new_sum) init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) for _ in range(10): sess.run(update_value) sess.run(update_sum) print("1+2+3+4+5+6+7+8+9+10=",end="") print(sess.run(sum)) ###输出### 1+2+3+4+5+6+7+8+9+10=55
例二:
通过变量赋值输出1+2+3+4+5+6+7+8+9+...+n
#通过变量赋值输出1+2+3+4+5+6+7+8+9+...+n import tensorflow as tf value = tf.Variable(0,name="value") sum = tf.Variable(0,name="sum") one = tf.constant(1) n = tf.placeholder(tf.int32,name='n') new_value = tf.add(value,one) update_value = tf.assign(value,new_value) new_sum = tf.add(sum,value) update_sum = tf.assign(sum,new_sum) init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) number = int(input("请输入数字: ")) for i in range(number): sess.run(update_value) sess.run(update_sum) result = sess.run(sum,feed_dict={n:number}) print(result)