官术网_书友最值得收藏!

1.5 深度學習環境配置

本書將介紹深度學習在驗證碼校驗方面的應用并動手實現幾個案例。深度學習領域的庫或框架非常多,有PyTorch、Caffe、TensorFlow、Darknet等,我們可以利用它們快速實現需求。

下面我們就來了解深度學習所需的環境配置。

1.5.1 NVIDIA顯卡驅動安裝

GPU(Graphics Processing Unit,圖形處理器)是顯卡的核心組成部分,能夠執行復雜的計算,所以成為進行深度學習的首選處理器。深度學習的計算量非常大,以一張像素大小為200×40的彩色圖片為例,它的輸入數據量為200×40×3=24000,其中3代表RGB通道數量。假如訓練樣本的數量為20000,那么計算量就是480000000(4.8億)。面對如此大的計算量,人們在深度學習的過程中通常會選擇計算能力更強的GPU,而不是CPU。

GPU的計算能力稱為算力,可以在NVIDIA官網查看(詳見https://developer.nvidia.com/cuda-gpus)。NVIDIA GeForce系列部分產品的算力,如圖1-46所示。

圖1-46 NVIDIA GeForce系列部分產品的算力

在驅動安裝開始前,你需要確認你的計算機搭載了一張GPU算力超過3.5的獨立顯卡。如果沒有,那么可以跳過1.5.1節、1.5.2節和1.5.3節的介紹。

首先,我們需要將顯卡驅動加入PPA源PPA是Personal Package Archives的縮寫,表示個人軟件包文檔。并且更新軟件列表,相關命令如下:

$ sudo add-apt-repository ppa:graphics-drivers
$ sudo apt-get update

然后使用命令查找NVIDIA顯卡驅動的最新版本號:

$ sudo apt-cache search nvidia

此時控制臺將輸出如下內容:

nvidia-dkms-410 - NVIDIA DKMS package
nvidia-driver-410 - NVIDIA driver metapackage
nvidia-headless-410 - NVIDIA headless metapackage
nvidia-headless-no-dkms-410 - NVIDIA headless metapackage - no DKMS
nvidia-kernel-common-410 - Shared files used with the kernel module
nvidia-kernel-source-410 - NVIDIA kernel source package
nvidia-utils-410 - NVIDIA driver support binaries
xserver-xorg-video-nvidia-410 - NVIDIA binary Xorg driver
...

接著使用如下命令查看系統推薦的顯卡驅動:

$ ubuntu-drivers devices

此時控制臺將輸出如下內容:

== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001D01sv00007377sd00000000bc03sc00i00
vendor    : NVIDIA Corporation
model     : GP108 [GeForce GT 1030]
driver    : nvidia-driver-418 - third-party free
driver    : nvidia-driver-415 - third-party free
driver    : nvidia-driver-410 - third-party free
driver    : nvidia-driver-396 - third-party free
driver    : nvidia-driver-430 - third-party free recommended
driver    : nvidia-driver-390 - distro non-free
driver    : xserver-xorg-video-nouveau - distro free builtin

顯卡驅動版本與后續安裝的CUDA版本需要對應,NVIDIA官網給出的對照表如圖1-47所示。

圖1-47 CUDA與顯卡驅動的版本對照

當前CUDA版本號為10.1(詳見https://developer.nvidia.com/cuda-toolkit),這里我們需要選擇版本號大于等于418.39的顯卡驅動。打開系統中的“軟件和更新”,切換到“附加驅動”選項卡,并在驅動列表中選擇合適的顯卡驅動,如圖1-48所示。

圖1-48 “附加驅動”選項卡

然后點擊右下角的“應用更改”按鈕,此時系統會根據我們的選擇安裝對應的驅動,待驅動安裝完畢后,重新啟動計算機即可。

重啟計算機后,在應用列表中找到“設置”選項,并選擇“詳細信息”選項,點擊“About”,可以看到如圖1-49所示的硬件信息。

圖1-49 硬件信息

如果“圖形”對應的信息與計算機中的GPU信息一致,則表示顯卡驅動安裝成功。

1.5.2 CUDA Toolkit 的安裝

CUDA Toolkit為創建高性能GPU加速應用程序提供了開發環境。

相關鏈接

? NVIDIA 開發者中心:https://developer.nvidia.com

? CUDA Toolkit 下載地址:https://developer.nvidia.com/cuda-downloads

打開CUDA Toolkit下載地址并根據系統選擇下載的版本。這里以Ubuntu 18.04為例,下載選項的選擇如圖1-50所示。

圖1-50 CUDA Toolkit下載頁面

然后點擊Download按鈕下載CUDA Toolokit的安裝文件。文件下載完成后,使用如下命令運行安裝文件:

$ sudo sh cuda_10.1.105_418.39_linux.run

在安裝過程中需要做一些選擇,例如是否接受協議,命令如下:

Do you accept the above EULA? (accept/decline/quit):

此時輸入accept選項代表同意協議。接著需要選擇如圖1-51所示的安裝內容。

圖1-51 選擇安裝內容

按下回車鍵可以選擇或取消選擇。由于之前安裝過顯卡驅動,所以這里不選擇驅動選項,其他選項不變。接著選擇下方的Install選項即可進入安裝流程。安裝完畢后,還需要在環境變量中配置CUDA。打開環境變量配置文件的命令如下:

$ sudo nano ~/.bashrc

然后將以下內容寫入配置文件末尾:

export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
export
LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

其中cuda-10.1為實際安裝版本。如果計算機安裝的是其他版本,則需要修改路徑。

保存配置文件后,使用如下命令啟用新的環境變量:

$ source ~/.bashrc

然后執行nvidia-smi命令就可以看到如圖1-52所示的顯卡信息。如果右上角顯示的CUDA Version值與剛才安裝的版本號相同,代表CUDA Toolkit安裝成功。

圖1-52 顯卡相關信息

1.5.3 cuDNN 的安裝

cuDNN(深度神經網絡庫)用于給深度神經網絡的GPU加速,讓深度學習研究人員和框架開發人員專注于訓練和開發,而不是將時間花在GPU性能調優上。cuDNN加速被廣泛應用在深度學習領域,支持它的框架有Caffe、Caffe2、Chainer、Keras、MATLAB、MXNet、TensorFlow和PyTorch等。

相關鏈接

在下載cuDNN之前,我們需要在NVIDIA開發者平臺進行注冊,完成注冊并登錄后才能訪問下載頁面。下載時必須根據CUDA Toolkit版本下載cuDNN壓縮包,本書使用的CUDA Toolkit的版本號為10.1,對應的cuDNN版本號為v7.5.1。cuDNN下載頁面如圖1-53所示。

圖1-53 cuDNN下載頁面

下載時選擇cuDNN Library for Linux即可。下載完成后,根據cuDNN安裝說明進行安裝。首先使用如下命令解壓cuDNN壓縮包:

$ tar -xzvf cudnn-10.1-linux-x64-v7.5.1.10.tgz

然后將以下文件復制到CUDA Toolkit目錄中,并更改文件權限,對應命令如下:

$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

此時cuDNN安裝完畢。

接著我們使用如下命令驗證cuDNN是否安裝成功:

$ nvcc -V

如果此時終端輸出如下內容:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Fri_Feb__8_19:08:17_PST_2019
Cuda compilation tools, release 10.1, V10.1.105

就說明cuDNN已成功安裝。

1.5.4 深度學習庫 PyTorch

PyTorch是使用GPU和CPU優化的深度學習張量庫,我們將會在本書中使用它來實現驗證碼字符識別。

相關鏈接

? PyTorch 官網:https://pytorch.org/。

? PyTorch 安裝指南:https://pytorch.org/get-started/locally

打開PyTorch安裝指南對應的網址,根據系統和環境選擇對應的PyTorch版本。如果沒有顯卡驅動和CUDA Toolkit,在CUDA一欄中選擇None。本書所用的版本如圖1-54所示。

圖1-54 PyTorch版本

根據要求選擇后,PyTorch會給出對應的安裝命令。圖1-54中給出的命令如下:

$ pip3 install
https://download.pytorch.org/whl/cu100/torch-1.1.0-cp37-cp37m-linux_x86_64.whl
$ pip3 install torchvision

執行該命令,就可以安裝PyTorch。

對應的庫安裝完畢后,可以使用Python代碼驗證PyTorch是否安裝成功。Python代碼及輸出如下:

>>> import torch
>>> torch.cuda.is_available()
True

要注意的是,輸出結果為True或False僅代表GPU是否可用,如無報錯,均說明PyTorch庫已成功安裝。

1.5.5 深度學習框架 Darknet

Darknet是一個用C語言編寫的開源神經網絡框架,易于安裝且運行速度非???,同時支持CPU和GPU計算。在本書中,我們將使用它來實現驗證碼目標檢測。

相關鏈接

? Darknet 官網:https://pjreddie.com/darknet/。

? Darknet GitHub:https://github.com/pjreddie/darknet

首先從Darknet的GitHub倉庫克隆Darknet項目,克隆命令如下:

$ git clone https://github.com/pjreddie/darknet.git

克隆完成后,進入Darkent項目目錄darknet,并打開makefile文件,將第一行的GPU=0修改為GPU=1。這里更改GPU選項是為了讓Darknet在訓練時使用GPU進行加速計算。接著使用make命令編譯安裝:

$ make

在編譯過程中,終端會輸出如下信息:

mkdir -p obj
gcc -I/usr/local/cuda/include/   -Wall -Wfatal-errors   -Ofast...
gcc -I/usr/local/cuda/include/   -Wall -Wfatal-errors   -Ofast...
gcc -I/usr/local/cuda/include/   -Wall -Wfatal-errors   -Ofast...
...
gcc -I/usr/local/cuda/include/   -Wall -Wfatal-errors   -Ofast -lm...

如果沒有出現報錯信息,就代表順利完成編譯。接著我們可以使用如下命令驗證Darknet是否安裝成功:

$ ./darknet

如果終端輸出如下內容:

usage: ./darknet <function>

那么說明Darknet已成功安裝。

1.5.6 圖片標注工具 LabelImg

LabelImg是一個用Python語言編寫的圖像標注工具,其圖像和標注結果可以用于對目標檢測模型進行訓練。標注信息如圖1-55所示,標注結果會以PASCAL VOC格式保存為XML文件。

圖1-55 標注信息

相關鏈接

LabelImg的GitHub 倉庫地址:https://github.com/tzutalin/labelImg。

由于LabelImg是基于Qt 5實現的圖形界面,所以我們要先安裝它,命令如下:

$ sudo apt-get install pyqt5-dev-tools

然后使用如下命令將LabelImg項目克隆到本地:

$ git clone https://github.com/tzutalin/labelImg

接著進入labelImg項目,并安裝依賴:

$ cd labelImg
$ pip install -r requirements/requirements-linux-python3.txt

最后就可以使用如下命令編譯labelImg了:

$ make qt5py3

此時如果終端輸出如下內容:

pyrcc5 -o resources.py resources.qrc

就說明編譯成功。

編譯成功后,我們就可以使用LabelImg了。使用如下命令啟動LabelImg:

$ python labelImg.py

此時會彈出如圖1-56所示的界面,這說明LabelImg已安裝成功。

圖1-56 LabelImg界面

主站蜘蛛池模板: 北票市| 温泉县| 嘉祥县| 潜江市| 汶川县| 洛川县| 北海市| 诏安县| 清远市| 乳山市| 仪征市| 天全县| 长葛市| 昆明市| 汝阳县| 阳泉市| 高要市| 长海县| 将乐县| 依兰县| 沧源| 台前县| 北宁市| 庐江县| 迭部县| 邓州市| 五家渠市| 钟山县| 蓬安县| 方城县| 南和县| 渭南市| 昭觉县| 仁布县| 昭平县| 政和县| 隆安县| 鸡泽县| 葫芦岛市| 甘德县| 云和县|