tensorflow入門api
tensorflow是由谷歌人工智能團隊谷歌大腦(Google Brain)開發和維護的一個深度學習框架。session
入門案例
框架
如下是一個加法運算的示例,咱們經過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())
運行結果spa
咱們經過sess.run(sum)來輸出數據sum,若是輸出的數據是多個,咱們須要使用元組。線程
咱們也能夠使用sum.eval()來輸出數據sum。code
核心概念對象
tensorflow=tensor + flow ,也就是有向數據流 ,咱們使用tensorflow就是構建一個數據流圖, 而後執行改圖。
tensorflow數據流圖
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是一個會話, tensorflow的graph必須在Session中執行
1.運行圖的資源
2.分配資源運算,決定graph在什麼設備上運行
3.掌握資源(變量的資源,隊列,線程)
會話對象, 咱們能夠執行建立,運行和關閉等操做
1 s = tf.Session() 2 s.run() 3 s.close()
會話就是graph的上下文環境,只要有Session就有上下文環境。