TensorFlow基礎入門(一)

2022-05-04 16:21:07 字數 4203 閱讀 1082

#建立乙個常值運算,將作為乙個節點加入到預設計算圖中

hello = tf.constant("hello,world!")

#建立乙個tf對話

sess=tf.session()

#執行並獲得結果

print(sess.run(hello))

'''輸出 b'hello,world!'

b表示bytes literals(位元組文字)

tensorflow計算模型-計算圖tensorflow=tensor+flowtensor 張量

資料結構:多維陣列

flow 流

計算模型:張量之間通過計算而轉換的過程

tensorflow是乙個通過計算圖的形式表述計算的程式設計系統,每乙個計算都是計算圖上的乙個節點

計算圖是乙個有向圖,由一下內容構成:

一組節點,每個節點都代表乙個操作,是每一種運算

一組有向邊,每條邊代表節點之間的關係(資料傳遞和控制依賴)

計算圖的例項

import tensorflow as

tf #乙個簡單計算圖

node1=tf.constant(3.0,tf.float32,name="

node1")

node2=tf.constant(4.0,tf.float32,name="

node2")

node3=tf.add(node1,node2)

print(node3)

#輸出的結果不是乙個具體的數字,而是乙個張量的結構

#tensor(

"add:0

", shape=(), dtype=float32)

view code

計算圖的執行

計算圖的執行

建立計算圖只是建立靜態計算模型

執行對話才能提供資料並獲得結果

#建立對話並顯示執行結果

sess=tf.session()

print(

"執行sess.run(node1)的結果:

",sess.run(node1))

#執行sess.run(node1)的結果:

3.0print(

"執行sess.run(node2)的結果:

",sess.run(node2))

#執行sess.run(node1)的結果:

4.0print(

"執行sess.run(node3)的結果:

",sess.run(node3))

#執行sess.run(node1)的結果:

7.0#關閉session

sess.close()

在tensorflow中,所有的資料都通過張量的形式來表示從功能的角度,張量可以簡單理解為多為陣列零階張量表示標量(scalar),也就是乙個數

一階張量為向量(vector),也就是一維陣列

n階張量可以理解為乙個n維陣列;

張量並沒有真正儲存數字,它儲存的是計算過程

張量的屬性

tensor("add:0",shape=(),dtype=float32)

名字(name)

` 「node:src_output」:node節點名稱,src_output來自節點的第幾個輸出

形狀(shape)

張量的維度資訊,shape=(),表示是標量

型別(type)

每乙個張量會有乙個唯一的型別

tensorflow會對參與運算的所有張量進行型別的檢查,發現型別不匹配時會報錯

張量的形狀

三個術語描述張量的維度:階(rank)、形狀(shape)、維數(dimension number)

'''張量的形狀

'''tens1=tf.constant([

[[1,2,2],[2,2,3]],

[[3,5,6],[5,4,3]],

[[7,0,1],[9,1,9]],

[[11,12,7],[1,3,14]]

],name="tens1")

print(tens1)

#tensor("tens1_2:0",shape=(4,2,3),dtype=int32)

'''解釋shape=(4,2,3)

'''scalar=tf.constant(100)

vector=tf.constant([1,2,3,4,5])

matrix=tf.constant([[1,2,3],[4,5,6]])

cube_matrix=tf.constant([

[[1],[2],[3]],

[[4],[5],[6]],

[[7],[8],[9]]

])#輸出維度

print(scalar.get_shape())

print(vector.get_shape())

print(matrix.get_shape())

print(cube_matrix.get_shape())

#輸出內容如下

#tensorbord:tensorflow的視覺化

import tensorflow

astf

#清除default graph和不斷增加的節點

tf.reset_default_graph()

#logdir改為自己機器上的合適路徑

logdir='

d:/log

'#定義乙個簡單的計算圖,實現向量加法的操作

input1=tf.constant([1.0,2.0,3.0],name="

input1")

input2=tf.variable(tf.random_uniform([3]),name="

input2")

output=tf.add_n([input1,input2],name="

add"

)#生成乙個寫日誌的writer,並將當前的tensorflow計算圖寫入日誌。

writer=tf.summary.filewriter(logdir,tf.get_default_graph())

writer.close()

TensorFlow基礎入門

cpu版本直接pip install tf nightly即可。gpu版本需要安裝顯示卡驅動 cuda cudnn,注意版本。若手動安裝cuda還要將cuda的lib64目錄加入ld library path環境變數。然後使用pip install tf nightly gpu安裝即可。在pytho...

Tensorflow入門基礎語句及用法

tensorflow顧名思義是張量流動的意思,這裡的tensor雖然翻譯成張量但其實跟向量沒區別。tensorflow通過構建一張 圖 這個圖有點類似 樹 的結構。這裡可以看到圖中有很多節點,我們輸入的資料從根節點 就是最上方的節點 進入。然後流過這些節點。因為資料一般是以張量的形式流過節點,所以叫...

tensorflow從入門到放棄 一)

官網 tensorflow是乙個基於資料流程式設計 dataflow programming 的符號數學系統,被廣泛應用於各類機器學習 machine learning 演算法的程式設計實現,其前身是谷歌的神經網路演算法庫distbelief tensorflow擁有多層級結構,可部署於各類伺服器 ...