五分鐘喝不完一杯咖啡,但五分鐘可以帶你入門TensorFlow
歡迎關注我們的微信公眾號「人工智慧LeadAI」(ID:atleadai)
本文是《人人都能學人工智慧-TensorFlow系列》文章的第一篇,這個系列會對TensorFlow的基礎使用,SoftMax,交叉熵,Dropout,CNN,LSTM和NLP等內容進行系列介紹,盡量使用通俗的語言,讓更多的人都能了解人工智慧,了解TensorFlow。
TensorFlow是Google開源的一款人工智慧學習系統。為什麼叫這個名字呢?Tensor的意思是張量,代表N維數組;Flow的意思是流,代表基於數據流圖的計算。把N維數字從流圖的一端流動到另一端的過程,就是人工智慧神經網路進行分析和處理的過程。
話說在Android佔領了移動端後,Google開源了TensorFlow,希望佔領AI端。TF的特點是可以支持多種設備,大到GPU、CPU,小到平板和手機都可以跑起來TF。而且TF的使用很方便,幾行代碼就能開始跑模型,這讓神經網路的入門變得非常簡單。
本文是第一篇,都是最基礎的內容,老手可以略過。
TensorFlow的安裝
在開始寫代碼之前,咱們先得把TensorFlow安裝到電腦上。這裡有兩種方法,一是一個一個手動命令行安裝,二是批量的圖形化界面安裝。
先看手動安裝,我們安裝好TensorFlow和upyter Notebook就可以了。
1.1、安裝TensorFlow
Windows上:
安裝CPU版本:管理員模式打開命令行,輸入命令:pip install tensorflow
安裝GPU版本:管理員模式打開命令行,輸入命令:pip install tensorflow-gpu
Linux上:
命令和上面一樣,如果你使用的是Python3點幾的版本,那麼安裝命令為:
安裝CPU版本:輸入命令:pip3 install tensorflow
安裝GPU版本:輸入命令:pip3 install tensorflow-gpu
如果提示沒有安裝pip,mac的同學可以先通過命令安裝pip:
1 命令行輸入:curlhttps://bootstrap.pypa.io/ez_setup.py-o - | sudo python
2 命令行輸入:sudo easy_install pip
1.2、安裝Jupyter Notebook
這是一個互動式的筆記本,你可以理解為一個比較漂亮和簡潔的編輯器。可以很方便地創建和共享文學化程序文檔,支持實時代碼,數學方程,可視化和 markdown。一般用與做數據清理和轉換,數值模擬,統計建模,機器學習等等。
輸入命令:
pip install jupyter
前面的方法是自己手動一個一個安裝,其實已經有人幫我們做了一個大集合,不需要再一個一個手動安裝了,下面介紹圖形界面的批量安裝方式:
1)安裝Anaconda。Anaconda是什麼?如果你把TensorFlow看做火箭筒,那麼Anaconda就是軍火庫,裡面有各種的科學計算,機器學習的Python工具庫。在官網下載後,直接安裝,然後打開Anaconda,就可以看到下面的頁面:
2)點到第二行的Environments,可以看到很多的工具包,搜索TensorFlow,勾選上,然後點擊Apply,進行安裝就可以了。如果以後還需要其他的工具包,也可以在裡面找到,勾選上進行安裝。
OK,安裝教程到此告一段落。有了jupyter和tensorflow,我們就可以開始基礎的運算了。
TensorFlow的基礎運算
在搞神經網路之前,先讓我們把TensorFlow的基本運算,也就是加減乘除搞清楚。
首先,TensorFlow有幾個概念需要進行明確:
1、 圖(Graph):用來表示計算任務,也就我們要做的一些操作。
2 、會話(Session):建立會話,此時會生成一張空圖;在會話中添加節點和邊,形成一張圖,一個會話可以有多個圖,通過執行這些圖得到結果。如果把每個圖看做一個車床,那會話就是一個車間,裡面有若干個車床,用來把數據生產成結果。
3 、Tensor:用來表示數據,是我們的原料。
4、 變數(Variable):用來記錄一些數據和狀態,是我們的容器。
5、 feed和fetch:可以為任意的操作(arbitrary operation) 賦值或者從其中獲取數據。相當於一些鏟子,可以操作數據。
形象的比喻是:把會話看做車間,圖看做車床,裡面用Tensor做原料,變數做容器,feed和fetch做鏟子,把數據加工成我們的結果。
2.1、創建圖和運行圖
下面我們創建一個圖,並在Session中執行它,不用擔心看不懂,每句代碼都會注釋,只有有編程基礎,都能OK:
上面就是用TensorFlow進行了一個最簡單的矩陣乘法。
2.2、創建一個變數,並用for循環對變數進行賦值操作
可以看到,除了變數創建稍微麻煩一些和必須建立session來運行,其他的操作基本和普通Python一樣。
2.3、通過feed設置placeholder的值
有的時候,我們會在聲明變數的時候不賦值,計算的時候才進行賦值,這個時候feed就派上用場了
到這裡,恭喜你,已經成功入門TensorFlow~ 是不是覺得太簡單?好像和深度學習毛線關係都沒有嘛。不要急,下一篇文章和大家一起用TensorFlow做一個簡單的用神經網路來做手寫圖片識別的實戰。
推薦閱讀:
※Tensorflow源碼解讀(一):AttentionnSeq2Seq模型
※配置深度學習主機與環境(TensorFlow+1080Ti) | 第一章:硬體選購與主機組裝
※ChatGirl 一個基於 TensorFlow Seq2Seq 模型的聊天機器人
※從三大神經網路,測試對比TensorFlow、MXNet、CNTK、Theano四個框架
※TensorFlow 訓練好模型參數的保存和恢復代碼
TAG:TensorFlow |