1. 程式人生 > >[AI教程]tensorflow入門:Hello World與基本操作

[AI教程]tensorflow入門:Hello World與基本操作

文章目錄

1.tensorflow介紹

TensorFlow™ 是一個採用資料流圖(data flow graphs),用於數值計算的開源軟體庫。節點(Nodes)在圖中表示數學操作,圖中的線(edges)則表示在節點間相互聯絡的多維資料陣列,即張量(tensor)。它靈活的架構讓你可以在多種平臺上展開計算,例如臺式計算機中的一個或多個CPU(或GPU),伺服器,移動裝置等等。TensorFlow 最初由Google大腦小組(隸屬於Google機器智慧研究機構)的研究員和工程師們開發出來,用於機器學習和深度神經網路方面的研究,但這個系統的通用性使其也可廣泛用於其他計算領域。

圖片名稱

tensorflow使用資料流圖表示運算操作。資料流圖用“結點”(nodes)和“線”(edges)的有向圖來描述數學計算。“節點” 一般用來表示施加的數學操作,但也可以表示資料輸入(feed in)的起點/輸出(push out)的終點,或者是讀取/寫入持久變數(persistent variable)的終點。“線”表示“節點”之間的輸入/輸出關係。這些資料“線”可以輸運“size可動態調整”的多維資料陣列,即“張量”(tensor)。張量從圖中流過的直觀影象是這個工具取名為“Tensorflow”的原因。一旦輸入端的所有張量準備好,節點將被分配到各種計算裝置完成非同步並行地執行運算。

2.Hello World

按照推薦的教程,完成tensorflow的安裝。

tensorflow-Windows的安裝請參考: 安裝教程.

第一部分內容:建立一個名為hello的常量,建立會話(session),執行會話並輸出常量。

開啟終端,輸入命令啟用tensorflow環境:

activate tensorflow

輸入python,並回車,如下圖所示:

圖片名稱

首先,在python中匯入tensorflow:

import tensorflow as tf

定義一個常量hello

hello = tf.constant(
'Hello, TensorFlow!')

建立回話

sess = tf.Session()

執行,並輸出

print(sess.run(hello))

輸出結果:

b'Hello, TensorFlow!'
圖片名稱

3.基本操作

TensorFlow的幾個概念:
① 圖(Graph):用來表示計算任務,也就我們要做的一些操作。
②會話(Session):建立會話,此時會生成一張空圖;在會話中新增節點和邊,形成一張圖,一個會話可以有多個圖,通過執行這些圖得到結果。如果把每個圖看做一個車床,那會話就是一個車間,裡面有若干個車床,用來把資料生產成結果。
③Tensor:用來表示資料,是我們的原料。
④ 變數(Variable):用來記錄一些資料和狀態,是我們的容器。
⑤ feed和fetch:可以為任意的操作(arbitrary operation) 賦值或者從其中獲取資料。相當於一些鏟子,可以操作資料。

形象的比喻是:把會話看做車間,圖看做車床,裡面用Tensor做原料,變數做容器,feed和fetch做鏟子,把資料加工成我們的結果。

接下來,我們將實現標量的加、乘操作,向量的加、乘操作。

  • 標量的加、乘操作:
import tensorflow as tf
# 定義兩個佔位符a和b,將接收接下來要相加、乘的兩個標量2,3
a = tf.placeholder(tf.int16)
b = tf.placeholder(tf.int16)

# 啟動計算圖
# 其中 add為加操作,mul為乘操作,a和b接收資料,feed_dict將資料輸入到計算圖中
# sess.run 執行計算圖
with tf.Session() as sess:
    print "Addition with variables: %i" % sess.run(add, feed_dict={a: 2, b: 3})
    print "Multiplication with variables: %i" % sess.run(mul, feed_dict={a: 2, b: 3})

輸出(2加3和2乘3):

Addition with variables: 5
Multiplication with variables: 6
  • 向量的加、乘操作:
import tensorflow as tf
#定義兩個矩陣常量
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])

#兩個矩陣乘
product = tf.matmul(matrix1, matrix2)

#啟動計算圖
#sess.run 執行計算圖
with tf.Session() as sess:
   result = sess.run(product)
   print result

輸出兩個矩陣的乘積:

[[ 12.]]

參考文獻:
[1] TensorFlow Examples: github.
[2] 五分鐘帶你入門TensorFlow: link.
[3] TensorFlow 中文社群 link.

本文內容編輯:費東