要越來越接近核心了,今天分享的Tensorflow是很常用在機器學習的函式庫,可以說是越來越接近實作案例了!一起繼續努力吧!GOGO!
圖片出處
TensorFlow 是一種採用數據流圖(Dataflow Graph)並用於數值計算的開源函式庫,更是一個用於開發機器學習的平台,而且同樣的程式碼可以用CPU執行也可以用GPU執行,並支援許多語言:pyhton、C++、Java、Go...。更簡單的直接一句話概括是,Tensorflow就是Google開發出來的開源機器學習工具。
那為什麼叫Tensorflow呢?
先介紹下Tensorflow會用到的數據流圖(Dataflow Graph),是指Tensorflow會依照數據流圖來根據各操作間的關係來表示計算。概念大概是:
1.定義數據流圖(Dataflow Graph)
2.建立Tensorflow會話(Session),並運行數據流圖
數據流圖(Dataflow Graph)樣子(利用Tensorboard建立的視覺化,之後會提到):
圖片來源
那名字的由來:
1.Tensor的中文是張量的意思,而張量是「陣列」的廣義說法,所以Tensor可以代表是一維陣列、二維陣列...N維陣列。
2.Flow的中文是流的意思,類似一種流程的想法,就像我們寫程式,宣告變數,傳遞變數,計算,再傳遞...等等,最後輸出,也有流的想法在。然而,Tensorflow的流和上述不太相同,Tensorflow是把所有的節點設好,才用一個叫**sess.run()**來啟動計算圖。
以上就是兩點就是Tensorflow的名稱解釋拉。
(圖片來源:課堂上投影片)
看到上圖就可以看得出來,一般寫程式和在使用Tensorflow時的差別,一般寫程式就是相當邏輯性的寫下來就開始執行了,但Tensorflow在設定完要做的事情後,還要在使用sess.run()來啟動整個程式。但也可以看出其實Tensorflow跟之前學過的語言沒有太大的差別!所以一定可以很快上手的!
那我們先來寫一支簡單的程式吧!
import tensorflow as tf #引入函式庫
x = tf.constant(2) #constant是指不可改變的數字(也就是常數)
#常用語法tf.constant(value,dtype=None,shape=None) 分別是1.數值2.型態3.形狀(幾維)
y = tf.constant(3)
z = tf.add(x,y) #兩常數相加
with tf.Session() as sess : #幫tf.Session()取個綽號
#且用 with as 當程式結束後會 釋放資源
print(tf.Session().run(z)) #啟動數據流圖
輸出:
5
會發現跟一般的程式幾乎沒啥不一樣,就是多了tf和最後的啟動數據流圖!
今天介紹了Tensorflow的基本概念,以及寫了一支簡單的程式碼,明天會接續介紹基礎的、相關常用的指令!