[轉(zhuǎn)載]Python深度學(xué)習(xí):第1部分

原作者: Jon C-137
原文鏈接: https://medium.com/@jon.froiland/python-deep-learning-part-1-8c912cbf34f6

利用Keras建立一個深入的學(xué)習(xí)環(huán)境

讓我們來看一個神經(jīng)網(wǎng)絡(luò)的具體例子,它使用Python庫Keras來學(xué)習(xí)如何對手寫數(shù)字進行分類。我們要解決的問題是將手寫數(shù)字(28×28像素)的灰度圖像分為10類(0到9)。我們將使用MNIST數(shù)據(jù)集,這是機器學(xué)習(xí)社區(qū)中的一個經(jīng)典數(shù)據(jù)集,它幾乎和領(lǐng)域本身一樣長,并且已經(jīng)被深入研究過。這是一組60000張訓(xùn)練圖像,加上10000張測試圖像,由國家標(biāo)準(zhǔn)與技術(shù)研究所(NIST在MNIST中)在20世紀(jì)80年代組裝而成。
MNIST數(shù)據(jù)集以一組4個Numpy數(shù)組的形式預(yù)裝在Keras中.
建立深度學(xué)習(xí)環(huán)境的過程相當(dāng)復(fù)雜,包括以下步驟,本附錄將詳細介紹這些步驟:

  1. 安裝Python科學(xué)套件-Numpy和SciPy-并確保安裝了基本線性代數(shù)子程序(BLAS)庫,以便模型在CPU上快速運行。
  2. 安裝兩個在使用Keras時有用的附加軟件包:HDF5(用于保存大型神經(jīng)網(wǎng)絡(luò)文件)和Graphviz(用于可視化神經(jīng)網(wǎng)絡(luò)架構(gòu)).
  3. 通過安裝CUDA驅(qū)動程序和cuDNN,確保GPU可以運行深入學(xué)習(xí)代碼.
  4. 為Keras安裝后端:TensorFlow、CNTK或Theano.
  5. 安裝Keras.
    注:我目前正在努力使我的AMD GPU與ROCm和Tensorflow一起運行。希望能夠解決這些問題,并遵循一些說明,以及更多…
    唯一困難的部分是設(shè)置GPU支持。除此之外,整個過程只需幾個命令就可以完成,并且只需要花上幾分鐘時間。
    注意:在此我不會針對基于Nvidia的GPU進行GPU設(shè)置。
$ sudo apt update
$ sudo apt dist-upgrade

默認情況下,Ubuntu在安裝Python包(如Python pip)時使用Python 2。如果希望改用python3,則應(yīng)使用python3前綴而不是Python。或者,建立一個虛擬環(huán)境將是第一步。如果您需要進一步的信息,可以參考這篇文章:在Ubuntu 16.04上安裝Python Virtualenv

$ virtualenv -p python3 deeplearning
Using base prefix '/usr'
New python executable in /home/jon/deeplearning/bin/python3
Also creating executable in /home/jon/deeplearning/bin/python
Installing setuptools, pip, wheel...done.

$ source deeplearning/bin/activate

(deeplearning) user@host:~$

使用pip安裝包時,需要記住,在默認情況下,它針對的是Python 2。如果需要針對Python 3的話應(yīng)該使用pip3:

$ pip3 install tensorflow-gpu

安裝一個BLAS庫(在本例中為OpenBLAS),以確保可以在CPU上運行快速的tensor操作:

$ sudo apt install build-essential cmake git unzip pkg-config libopenblas-dev liblapack-dev

安裝Python科學(xué)套件:Numpy、SciPy和Matplotlib。這對于在Python中執(zhí)行任何類型的機器學(xué)習(xí)或科學(xué)計算都是必要的,無論您是否正在進行深入學(xué)習(xí):

$ sudo apt install python-numpy python-scipy python-matplotlib python-yaml

安裝HDF5。這個庫最初由NASA開發(fā),以高效的二進制格式存儲大量的數(shù)字?jǐn)?shù)據(jù)文件。它將允許您快速高效地將Keras模型保存到磁盤:

$ sudo apt install libhdf5-serial-dev python-h5py

安裝Graphviz和pydot ng,這兩個軟件包可以讓您可視化Keras模型。它們不需要運行Keras,因此您可以跳過此步驟,在需要時安裝這些軟件包。

$ sudo apt install graphviz
$ pip install pydot-ng

一些代碼示例中使用的其他包:

$ sudo apt install python-opencv

安裝Keras并運行MNIST示例

您可以從PyPI安裝Keras:

$ pip install keras

或者可以從GitHub安裝Keras。這樣您便可以訪問keras/examples文件夾,其中包含許多示例腳本供您學(xué)習(xí):

$ git clone https://github.com/fchollet/keras
$ cd keras
$ python setup.py install
$ python examples/mnist_cnn.py

請注意,運行此示例到完成可能需要幾分鐘時間,因此在驗證它正常工作后,可以強制退出(Ctrl-C)。
大約2分鐘后:


大約12分鐘后:


大約20分鐘后,完成的界面應(yīng)該是這樣的:


注意:我用的是AMD Ryzen? 5 2500U Quad-Core 和 AMD Radeon? Vega M Graphics-你的結(jié)果可能會有所不同。
運行Keras至少一次后,可以在以下位置找到Keras配置文件:

$ /.keras/keras.json.

您可以通過編輯它來選擇Keras運行的后端:tensorflow、theano或cntk。配置文件應(yīng)如下所示:

{
    "image_data_format": "channels_last",
    "epsilon": 1e-07,
    "floatx": "float32",
    "backend": "tensorflow"
}

當(dāng)Keras腳本examples/mnist_cnn.py運行時,如果設(shè)置了GPU使用,則可以在不同的shell窗口中監(jiān)視GPU使用情況:

$ watch -n 5 NVIDIA-smi -a --display=utilization

在明天的續(xù)集中我們將學(xué)習(xí)快速地仔細查看MNIST數(shù)據(jù)集。

Chollet, Fran?ois. Deep learning with Python. Shelter Island, NY: Manning Publications Co, 2018.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容