一、導入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)