1. 程式人生 > 其它 >tensorflow入門

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就有上下文環境。