人工智慧tensorflow的自學之路(1)!
什麼是tensorflow?
TensorFlow是谷歌基於DistBelief進行研發的第二代人工智慧學習系統,其命名來源於本身的執行原理。Tensor(張量)意味著N維陣列,Flow(流)意味著基於資料流圖的計算,TensorFlow為張量從流圖的一端流動到另一端計算過程。TensorFlow是將複雜的資料結構傳輸至人工智慧神經網中進行分析和處理過程的系統。
當然入門Python沒有好的學習資料怎麼行呢?所以小編這裡準備了一份Python學習資料,新增小編學習交流群943752371即可。
安裝tensorflow
首先請確認電腦上安裝了 python 編譯環境,這裡我用的版本是 python3.6
其次使用安裝 tensorflow 庫
不明白的參照這個連結
tensorflow術語
在學習tensorflow之前,我們首先要明白幾個常用的術語:
(1) op 表示某種抽象計算,它擁有0個或多個「輸入/輸出」,及其0個或多個「屬性」。其中,輸入/輸出以 Tensor 的形式存在。
(2) 使用圖(graphs)表示計算任務
(3)在被稱之為會話 Session的 上下文(context)中執行圖
(4)使用 tensor 表示資料通過變數(Variable)維護狀態
(5)使用 feed 和 fetch 可以為任意的操作複製或者從其中獲取資料
簡單例子
話不多說,讓我們開始吧!
# 呼叫 tensorflow庫importtensorflowastf# 1# 定義兩個常量 m1 = tf.constant([[3,3]])# 2m2 = tf.constant([[2], [3]])# 建立一個矩陣乘法op,把m1,m2作為引數傳入product = tf.matmul(m1, m2)# 3# 輸出productprint(product)
我們一句一句解釋:
1,我們呼叫了 tensorflow 庫 ,為了方便,我們使用了 as tf ,以後就 tf 就可以代表 tensorflow這個庫的名字了
2,定義了兩個常量 m1、m2, 在tensorflow中我們用 tf.constant()這個函式來賦值常量, m1是一個一行兩列的矩陣[3, 3], m2是一個兩行一列的矩陣[[2], [3]]。
3,我們用 tf.matmul()這個函式來執行一次乘法運算並把 m1,m2作為引數傳入
最後我們列印一下結果
Tensor("MatMul:0", shape=(1, 1), dtype=int32)
What fuck?! 劇情不對啊!
在 tensorflow 中 使用計算圖的方式來定義計算過程, 執行計算還是要會話 session來操作
我們接著上面的程式繼續寫
# 定義一個會話sess = tf.Session()# 4# 在會話中執行運算result = sess.run(product)# 5# 列印結果print(result)sess.close()# 6
先看一下結果:
Tensor("MatMul:0", shape=(1, 1), dtype=int32)
[[15]]
第一行是執行 sess.run() 之前的資料,第二行終於得出了矩陣相乘的結果
4,我們定義了一個會話物件 sess
5,執行sess.run()函式,開始了乘法運算
6,關閉會話
由於每次都要定義會話和關閉會話,我們採用with語句來改進一下:
withtf.Session()assess: result = sess.run(product) print(result)
與 4 ~ 6 之中的作用是功能是一樣的,這樣做可以避免忘記關閉會話帶來的不必要開銷。
總結:我們用 tensorflow 進行了一次矩陣乘法運算, 初步認識了 tensorflow 的執行過程,這裡我們只是使用了常量,下篇文章中我們將介紹變數的使用和運算。
作者:懶人享受生活
連結:https://www.jianshu.com/p/a4f3c5e7d5f4
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。