Tensorflow是一個開源的、基於 Python 的機器學習框架,其前身是谷歌的神經網絡算法庫,由谷歌人工智能團隊谷歌大腦(Google Brain)開發和維護。python
它是基於數據流編程數學運算系統,可部署於服務器、我的pc、網頁、Android設備並支持GPU和TPU(Tensor Processing Units)高性能數值計算,除了 Python,TensorFlow 也提供了 C/C++、Java、Go、R 等其它編程語言的接口。算法
清楚了機器學習算法的過程後,本身也能夠一步步用numpy把算法寫出來,但可能會步驟很麻煩、代碼很長、效率不高,而tensorflow等機器學習庫將要用到的矩陣操做採用高效的運算方法,封裝成API(函數),供咱們方便的調用,這樣能使咱們的想法得以快速實現,而沒必要從新造輪子。編程
tensorflow翻譯過來就是張量流,張量能夠理解成矩陣的意思,二維張量就是二維矩陣,數據在tensorflow也是以張量(tensor)的類型存在,程序運行也就是張量(數據)在節點中流動的過程。服務器
用tensorflow庫寫python代碼與日常的代碼有所不一樣,它不是執行一行就得出一行的結果。
它是以有向圖的方式執行,每一個變量都是一個節點,數據在節點中流動。好比求c=a+b,先定義a,b三個節點,定義c=a+b,定義好後定義一個會話Session,會話運行變量c,這樣數據就會從a和b流向c。網絡
這樣說着可能跟日常編程同樣,看一下下面的程序就清楚數據流編程模式了。框架
程序計算c = a + b機器學習
import tensorflow as tf a = tf.constant(3) # 定義a和b爲tf常量 b = tf.constant(4) c = tf.add(a, b) # 定義c和c的值來源,此行並不會得出c的值,只是定義了c with tf.Session() as sess: # 定義一個會話 print(sess.run(c)) # 在會話中計算c的值並打印
程序與日常程序不一樣的使第四行並不會得出c的結果,在會話中sess.run(c) 纔會計算c=a+b。編程語言
會話Session()運行完須要顯示關閉會話,sess.close(),經過with...as... 就能夠在計算完成後自動關閉會話。函數