tensorflow入門 tensorflow是由谷歌人工智慧團隊谷歌大腦(Google Brain)開發和維護的一個深度學習框架。 入門案例 以下是一個加法運算的示例,我們通過tensorflow構建一個tensorflow graph ,然後通過session 會話去運行該graph,我們通過a ...
tensorflow入門
tensorflow是由谷歌人工智慧團隊谷歌大腦(Google Brain)開發和維護的一個深度學習框架。
入門案例
以下是一個加法運算的示例,我們通過tensorflow構建一個tensorflow graph ,然後通過session
會話去運行該graph,我們通過api sess.run()來指定圖的輸出,除了最終的結果,參與整個圖運
算的數據我們都可以輸出,如果我們需要得到的話。
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就有上下文環境。