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)

 

 
 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM