1. 程式人生 > >五分鐘帶你入門TensorFlow

五分鐘帶你入門TensorFlow

本文是《人人都能學人工智慧-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)安裝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

2)安裝Jupyter Notebook

這是一個互動式的筆記本,你可以理解為一個比較漂亮和簡潔的編輯器。可以很方便地建立和共享文學化程式文件,支援實時程式碼,數學方程,視覺化和 markdown。一般用與做資料清理和轉換,數值模擬,統計建模,機器學習等等。

輸入命令:pip install jupyter

前面的方法是自己手動一個一個安裝,其實已經有人幫我們做了一個大集合,不需要再一個一個手動安裝了,下面介紹圖形介面的批量安裝方式:

1)安裝Anaconda。Anaconda是什麼?如果你把TensorFlow看做火箭筒,那麼Anaconda就是軍火庫,裡面有各種的科學計算,機器學習的Python工具庫。在官網下載後,直接安裝,然後開啟Anaconda,就可以看到下面的頁面:

2)點到第二行的Environments,可以看到很多的工具包,搜尋TensorFlow,勾選上,然後點選Apply,進行安裝就可以了。如果以後還需要其他的工具包,也可以在裡面找到,勾選上進行安裝。

OK,安裝教程到此告一段落。有了jupyter和tensorflow,我們就可以開始基礎的運算了。

清華提供的anaconda映象,使用以後真的很快!尤其在學校龜速的網路環境裡提速非常明顯。

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

TUNA 還提供了 Anaconda 倉庫的映象,執行以下命令:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls yes

實在不行,看這裡https://blog.csdn.net/qq_40061421/article/details/84632905

二、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做一個簡單的用神經網路來做手寫圖片識別的實戰。