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)

 

 
 

 

 

posted @ 2018-10-28 17:29  泰初  阅读(2101)  评论(0编辑  收藏  举报