Tensorflow 學習筆記 1

2021-08-28 20:50:32 字數 2109 閱讀 1249

tensorflow 學習筆記(1)

tensorflow:tensor 和 flow。

tensor:張量,多維陣列。(表明資料結構)

flow:資料流,表達張量之間通過計算相互轉化的過程。

tensorflow 是乙個通過計算圖的形式來表述計算的程式設計系統 。tensorflow中的每乙個計算都是計算圖上的乙個節點,而節點之間的邊描述了計算之間的依賴關係。

計算圖:

tf.get_default_graph():獲取當前預設的計算圖。

tf.graph():生成新的計算圖。不同計算圖上的張量和運算不共享。

tf.variable():variable 且以大寫字母開頭,該函式在於定義乙個變數;

tf.get_variable():可根據 name 值,返回該變數,如果該 name 不存在的話,則會進行建立。

tf.global_variables_initializer().run():變數初始化,在sess之前,對之前定義的變數需要初始化。

命名:tf.variable_scope(reuse=true)可以讓變數有相同的命名,包括tf.get_variable得到的變數,還有tf.variable的變數

tf.name_scope可以讓變數有相同的命名,只是限於tf.variable的變數.reuse為是否共享。########在sess.run(tf.get_variable(「name」))上,需要加入tf.variable_scope()#######

如果tf.variable_scope函式使用引數reuse=none或者reuse=false建立上下文管理器,則tf.get_variable函式可以建立新的變數。但不可以建立已經存在的變數即為同名的變數。

tensorflow 支援 14 種不同的型別, 主要包括了實數( tf.醜oat32 、 tf.float64 )、整數( tf.int8 、 tf.intl 6 、 tf.int32 、 tf.int64 、 tf.uint8 )、布林型 c tf.bool) 和複數( tf.complex64 、tf.complex128 ) 。

會話

通過 configproto protocol buffercd來配置需要生成的會話。config = tf.configproto(al low soft placement=true,

log_device_placem ent=true)

sess1= tf.interactivesession(config=conf ig)

sess2 = tf.session(config =config)

通過 configproto 可以配置類似並行的執行緒數、 gpu 分配策略、運算超時時間等引數。

在這些引數中,最常使用的有兩個。第 乙個是 allow_so位_placement ,這是乙個布林型的引數,當它為 true 時, 在以下任意乙個條件成立時, gpu 上的運算可 以放到 cpu 上進行 :

1.  運算無法在 gpu 上執行 。

2. 沒有 gpu 資源(比如運算被指定在第 二個 gpu 上執行 ,但是機器只有乙個 gpu ) 。

3. 運算輸入包含對 cpu 計算結果的引用 。

這個引數的預設值為 false ,但是為了使得**的可移植性更強,在有 gpu 的環境下

這個引數一般會被設定為 true 。不同的 gpu 驅動版本可能對計算的支援有略微的區別,通

過將 allow_ soft placement 引數設為 true , 當某些運算無法被當前 gpu 支援時,可 以自動

調整到 cpu 上,而不是報錯。類似地,通過將這個引數設定為 true ,可以讓程式在擁有不

同數量的 gpu 機器上順利執行。

第 二個使用得比較多的配置引數是 log device _placement o 這也是乙個布林型的引數,

當它為 true 時日誌中將會記錄每個節點被安排在 哪個裝置上以方便除錯 。而在生產環境中

將這個引數設定為 false 可以減少日誌量。

tf.interactivesession 。使用這個函式會自動將生成 的 會話註冊為

缺省會話。sess=tf.interactivatesession()

tensorflow學習筆記1

在跑minist demo時,遇到了這幾句 batchsize 6 label tf.expand dims tf.constant 0,2,3,6,7,9 1 index tf.expand dims tf.range 0,batchsize 1 concated tf.concat 1,inde...

TensorFlow學習筆記1

1 tensorflow 谷歌第二代人工智慧學習系統 2 tensorflow顧名思義tensor flow。tensor的意思是 張量,flow的意思是 流動,合起來就是 張量的流動 3 系統架構及程式設計模型。其中系統架構如圖1所示,程式設計模型如圖2所示。圖1 tensorflow系統架構圖 ...

TensorFlow學習筆記1

編寫tensorflow的兩個步驟 構建計算圖graph 使用session去執行graph中的operation 這裡寫描述 三個基本概念 rank rank一般是指資料的維度,其與線性代數中的rank不是乙個概念。其常 用rank舉例如下。shape 指tensor每個維度資料的個數,可以用py...