#建立乙個常值運算,將作為乙個節點加入到預設計算圖中
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 asview codetf #乙個簡單計算圖
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)
計算圖的執行
計算圖的執行
建立計算圖只是建立靜態計算模型
執行對話才能提供資料並獲得結果
#建立對話並顯示執行結果在tensorflow中,所有的資料都通過張量的形式來表示從功能的角度,張量可以簡單理解為多為陣列零階張量表示標量(scalar),也就是乙個數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()
一階張量為向量(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擁有多層級結構,可部署於各類伺服器 ...