tensorflow入門
技術標籤:python基礎教程python基礎教程
tensorflow入門
tensorflow是由谷歌人工智慧團隊谷歌大腦(Google Brain)開發和維護的一個深度學習框架。
入門案例
以下是一個加法運算的示例,我們通過tensorflow構建一個tensorflow graph ,然後通過session
會話去執行該graph,我們通過api sess.run()來指定圖python基礎教程的輸出,除了最終的結果,參與整個圖運
算的資料我們都可以輸出,如果我們需要得到的話。
1 import tensorflow as tf
2
3 """
4 實現一個加法運算,必須遵循以下的格式
5 """
6
7 #建立一個tensor張量
8 a = tf.constant(5.0)
9 b = tf.constant(6.0)
10
11 #建立一個op(操作)
12 sum=tf.add(a, b)
13
14 #通過Session執行graph
15 with tf.Session() as sess:
16 print(sess.run(sum))
17 print(sess.run([a, sum]))
18 print(sum.eval())
執行結果
我們通過sess.run(sum)來輸出資料sum,如果輸出的資料是多個,我們需要使用元組。
我們也可以使用sum.eval()來輸出資料sum。
核心概念
tensorflow=tensor + flow ,也就是有向資料流 ,我們使用tensorflow就是構建一個數據流圖, 然後執行改圖。
tensorflow資料流圖
張量: tensor, 資料就是張量
節點: operation(op),所有的運算操作都是一個op
圖: graph,整個程式的結構就是一個graph,定義了整個程式的框架
會話: session , 用來執行圖
tensor(張量)
tensorflow graph中的資料都是張量,示例如下:
1 import tensorflow as tf
2
3
4 a = tf.constant(5.0)
5 b = tf.constant(6.0)
6 sum=tf.add(a, b)
7 print(a)
8 print(sum)
輸出結果如下:
我們看到的結果就是Tensor物件
op(操作)
只要使用tensorflow的API定義的函式都是op, 如constant(), add()。
graph(圖)
tenorflow有一個預設圖, 如果我們不指定圖的話, 預設就是在預設圖上執行的。
預設圖
如果我們不指定圖的話,我們使用的是tensorflow的預設圖,他會自動呼叫 graph=
tf.get_default_graph(), 相當於給程式分配了一段記憶體, 我們所有的Tensor, op
都在這張圖上。
1 import tensorflow as tf
2
3 """
4 實現一個加法運算,必須遵循以下的格式
5 """
6
7 #建立兩個tensor張量
8 a = tf.constant(5.0)
9 b = tf.constant(6.0)
10 #建立一個op(操作)
11 sum=tf.add(a, b)
12
13 print(a.graph)
14 print(b.graph)
15 print(sum.graph)
16
17 #預設圖
18 graph = tf.get_default_graph()
19 print(graph)
20
21 #通過Session執行graph
22 with tf.Session() as sess:
23 print(sess.run(sum))
24 print(sess.run([a, sum]))
25 print(sum.eval())
執行結果如下圖所示:
通過執行結果,發現tensor, op , 和session 都執行在一張圖上, 也就是系統預設
的這張圖 。 with tf.Session() as sess: 相當於 with.tf.Session(graph) as sess: 。
自定義圖
預設使用的是tensorflow預設圖,我們也是可以自定義圖,一下是一個自定義圖的完整示例:
1 import tensorflow as tf
2
3 #建立一個圖
4 g = tf.Graph()
5
6 #使用自定義的圖
7
8 with g.as_default():
9 pass
session(會話)
session是一個會話, tensorflow的graph必須在Session中執行
會話的作用
1.執行圖的資源
2.分配資源運算,決定graph在什麼裝置上執行
3.掌握資源(變數的資源,佇列,執行緒)
會話物件, 我們可以執行建立,執行和關閉等操作
1 s = tf.Session()
2 s.run()
3 s.close()
上下文環境
會話就是graph的上下文環境,只要有Session就有上下文環境。