TensorFlow常用基本操作
阿新 • • 發佈:2021-01-10
會話(session):會話擁有並管理Tensorflow程式執行時的所有資源,計算之後需關閉會話回收資源
import tensorflow.compat.v1 as tf #定義計算圖 tens=tf.constant([1,2,4]) #建立一個會話 sess=tf.Session() # 使用這個建立好的會話來得到關心的結果,如呼叫的sess.run(tens1),得到張量tensl的取值 print(sess.run(tens)) # 關閉會話使釋放本次執行中使用的資源 sess.close()
import tensorflow.compat.v1 as tf #constant:定義常量node1=tf.constant(3.0,tf.float32,name="node1") node2=tf.constant(4.0,tf.float32,name="node2") result=tf.add(node1,node2) #建立一個會話,通過Python的上下文管理器來管理 with tf.Session() as sess: # 使用建立好的會話來計算結果 print(sess.run(result)) # 不需要再呼叫sess.close()來關閉會話 #上下文退出時自動關閉
當python不生成預設對話,需要手動指定,可通過tf.Tensor.eval()計算值
import tensorflow.compat.v1 as tf import numpy as np node1=tf.constant(3.0,tf.float32,name="node1") node2=tf.constant(4.0,tf.float32,name="node2") result=tf.add(node1,node2) #當python不生成預設對話,需要手動指定,可通過tf.Tensor.eval()計算值 sess=tf.Session() #sess=tf.InteractiveSession() print(result.eval()) sess.close() 等價# with sess.as_default(): # # 使用建立好的會話來計算結果 # print(result.eval()) print(sess.run(result)) print(result.eval(session=sess)) # 不需要再呼叫sess.close()來關閉會話 #上下文退出時自動關閉x
變數:Variable
在執行過程中值會改變的單元,在Tensorflow中必須進行初始化操作建立語句:
name_variable=tf.Variable(value,name)
個別變數初始化:init_op=name_variable.initializer()
所有變數初始化:init_op=tf.global_variables_initializer()
sess.run(init_op) #呼叫會話run命令對引數進行初始化
計算1+2+...+10
import tensorflow.compat.v1 as tf x=tf.Variable(0) y=tf.Variable(0) t=tf.constant(1) new_x=tf.add(x,t) update_x=tf.assign(x,new_x) new_y=tf.add(y,x) update_y=tf.assign(y,new_y) #變數更新 init=tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) for i in range(10): sess.run(update_x) print(sess.run(update_y))
佔位符:placeholder
在定義時並不知道其數值,只有當真正執行程式時,才由外部輸入,如訓練資料
tf.placeholder先定義一種資料,其引數為資料的Type和Shape
tf.placeholder(dtype,shape=None,name=None)
Feed提交資料:
placeholder佔用的變數必須通過feed_dict引數傳遞進去
import tensorflow.compat.v1 as tf a=tf.placeholder(tf.float32) b=tf.placeholder(tf.float32) c=tf.multiply(a,b) with tf.Session() as sess: result=sess.run(c,feed_dict={a:0.5,b:8.0}) print(result)