標籤:

五分鐘喝不完一杯咖啡,但五分鐘可以帶你入門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 命令行輸入:curlbootstrap.pypa.io/ez_se - | 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 |