tensorflow入門

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, 數據就是張量
  • 節點: 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就有上下文環境。

相關文章
相關標籤/搜索