1. 程式人生 > 實用技巧 >TensorFlow常用基本操作

TensorFlow常用基本操作

會話(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)