ubutnu16.04搭建深度學習環境: python3 + keras + tensflow
- 一、硬件信息
- 查看cpu型號
- 查看顯卡型號
- 查看系統版本
- 二、軟件安裝
- 2.1安裝anaconda3
- 2.2 安裝keras
- 2.3 設置GPU支持
- 2.3.1 安裝驅動
- 2.3.2 安裝CUDA
- 2.3.3 安裝cuDNN
- 4.安裝tensorflow-gpu
- 5.安裝keras
一、硬件信息
深度學習需要訓練模型,一塊英偉達的顯卡必不可少。初學者,資金不太充裕,就買了一塊navida RTX系列顯卡。
查看cpu型號
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
12 Intel? Core? i7-7800X CPU @ 3.50GHz
查看顯卡型號
nvidia-smi
查看系統版本
uname -a
Linux ubun 4.15.0-50-generic #54~16.04.1-Ubuntu SMP Wed May 8 15:55:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
二、軟件安裝
2.1安裝anaconda3
anaconda指的是一個開源的Python發行版本,其包含了conda、Python等180多個科學包及其依賴項。可以幫助python開發者省去很多安裝科學包的工作。下面我們就來簡單介紹如何在Ubuntu16.04環境下安裝Anaconda3。
從2019.04.16日起,應anacoanda官方要求,清華源下架了anaconda3的鏡像。自此下載此工具需要到官方網站下載。
提醒一點,鏡像500M左右,使用迅雷下載鏡像,會稍微快一點。
下載完成后,從命令行進入到Anaconda3-5.0.1-Linux-x86_64.sh文件所在的路徑下:
sudo bash Anaconda3-5.0.0-Linux-x86_64.sh
接下來,它會提示你是否接受協議,這里直接輸入yes,再按回車即可(不要直接按回車,這樣默認是no)
接下來,會提示你指定安裝路徑,這里可以使用默認的,也可以自己指定。
然后就是等待安裝進程完成,完成后會提示你是否要將Anaconda的安裝路徑添加到PATH環境變量中,輸入yes就好了。
如果輸入no,那么我們就需要自己手動在.bashrc文件中添加export PATH="/opt/anaconda3/bin:$PATH",然后再在命令行中輸入source ~/.bashrc
至此,Anaconda就安裝好了,在測試Anaconda是否安裝成功之前,我們需要先關閉當前的終端,重啟開啟另一個終端后,才可以進行測試,輸入python來查看是否安裝成功
$ python
Python 3.6.2 |Anaconda, Inc.| (default, Sep 22 2017, 02:03:08)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
2.2 安裝keras
如果此時你打開了jupyther-notebook,想測試一下mnist數據集,那么你會失望的,不要問我為什么,不然不會有這一步了。哈哈。
conda install keras
安裝keras的時候,他的后端相關的所有依賴(比如tensorflow)都會安裝好。此時再測試就是OK的。此處提供一個網上的代碼:
'''Trains a simple deep NN on the MNIST dataset.
Gets to 98.40% test accuracy after 20 epochs
(there is *a lot* of margin for parameter tuning).
2 seconds per epoch on a K520 GPU.
'''
from __future__ import print_function
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.optimizers import RMSprop
batch_size = 128
num_classes = 10
epochs = 20
import numpy as np
# 內置load_data() 多次加載數據都是失敗 于是下載數據后 自定義方法
def load_data(path="/home/ubuntu/1-AI/mnist.npz"):
f = np.load(path)
x_train, y_train = f['x_train'], f['y_train']
x_test, y_test = f['x_test'], f['y_test']
f.close()
return (x_train, y_train), (x_test, y_test)
print("1--------------------------")
# the data, split between train and test sets
(x_train, y_train), (x_test, y_test) = load_data()
x_train = x_train.reshape(60000, 784)
x_test = x_test.reshape(10000, 784)
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255
print(x_train.shape[0], 'train samples')
print(x_test.shape[0], 'test samples')
# convert class vectors to binary class matrices
y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)
model = Sequential()
model.add(Dense(512, activation='relu', input_shape=(784,)))
model.add(Dropout(0.2))
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(num_classes, activation='softmax'))
model.summary()
model.compile(loss='categorical_crossentropy',
optimizer=RMSprop(),
metrics=['accuracy'])
history = model.fit(x_train, y_train,
batch_size=batch_size,
epochs=epochs,
verbose=1,
validation_data=(x_test, y_test))
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
上述代碼中load_data()函數沒有用mnist對象內置的函數,而是自己實現的。如果你直接下載該數據集很慢,不妨嘗試load絕對路徑,mnist數據及其測試程序可以參考該鏈接,下載分數想改為0,但是一直改不過來。也可以隨便找一個。(https://download.csdn.net/download/dongqing27/11247395)
細心的同學會發現,anaconda安裝好以后,ubuntu終端命令行前多了一個“(base)”,這是因為anaconda自動加入了命令到 .bashrc中, 在我們打開終端的時候自動 執行了 conda activate base 命令,進入到了base環境下。此時,使用的pythons, pip, tensorflow 都是此環境中的版本。如果想換一種版本,需要重新配置環境,創建新環境名稱,這個后邊再說。
2.3 設置GPU支持
上邊的代碼運行過后,發現,每一個Epoch需要8s左右的計算時間。這說明設備的GPU沒有被調用。此時想辦法設置GPU支持。
步驟是:安裝顯卡驅動 + 安裝CUDA(GPU加速) + 安裝cuDNN(深度學習加速庫)。
2.3.1 安裝驅動
到英偉達官網下載顯卡對應驅動。
到此界面中產品類型,型號等會自己填充。自己只需選擇操作系統即可。點擊搜索,會出現推薦的驅動程序,點擊進入驅動程序信息頁面,下載:NVIDIA-Linux-x86_64-430.14.run ,然後其他網頁說明進行安裝:
1.卸載系統默認英偉達驅動
sudo apt-get remove –purge nvidia*
2.安裝下載好的驅動
Ctrl-Alt+F1 //進入命令行界面
sudo chmod a+x ./NVIDIA-Linux-x86_64-430.14.run
sudo ./NVIDIA-Linux-x86_64-430.14.run –no-x-check –no-nouveau-check –no-opengl-files
–no-x-check 安裝驅動時關閉X服務
–no-nouveau-check 安裝驅動時禁用nouveau
–no-opengl-files 只安裝驅動文件,不安裝OpenGL文件
安裝過程中可能會提示警告不匹配之類的,不用管只管安裝就行。
3.卸載
安裝出現問題,可以執行下面命令卸載:
sudo ./NVIDIA-Linux-x86_64-430.14.run --uninstall
2.3.2 安裝CUDA
(1)首先,在CUDA官網選擇適合自己系統的版本下載。
(2)推薦安裝步驟如下:
sudo dpkg -i cuda-repo-ubuntu1604-10-1-local-10.1.168-418.67_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-
/7fa2af80.pub //此處
是10-1-local-10.1.168-418.67
sudo apt-get update
sudo apt-get install cuda
(3)添加環境變量:
sudo vim ~/.bashrc
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc
(4) 查看安裝
nvcc -V
看到版本V10.1.168便知安裝包安裝成功。
2.3.3 安裝cuDNN
在官網下載安裝包。值得注意的是需要注冊登錄才能下載,是注冊,而不是選擇qq或者微信登錄。
選擇適合自己的版本(選擇deb安裝包,可直接安裝完成,而不需要人為拷貝):在這我選擇:cuDNN Runtime Library for Ubuntu16.04 (Deb),下載下來的文件是:libcudnn7_7.6.0.64-1+cuda10.1_amd64.deb。
安裝:
sudo dpkg -i libcudnn7_7.6.0.64-1+cuda10.1_amd64.deb
4.安裝tensorflow-gpu
訓練模型時,配置好nvidia顯卡還不夠,還需要選擇的backend支持。默認安裝的tensorflow是cpu版本的,參照安裝說明,安裝gpu版本:
在這里插入圖片描述
安裝命令:
pip install tensorflow-gpu
如果你的下載速度十分慢,那這裏有一個方法可以試一下:
具體操作步驟:
1、敲開終端
2、敲命令
~$ mkdir ~/.pip
~$ vim ~/.pip/pip.conf //vim使用方法十分簡單,請自行百度。
3、編輯文件內容
[global]
index-url = http://mirrors.aliyun.com/pypi/simple
[install]
trusted-host=mirrors.aliyun.com
5.安裝keras
sudo pip3 install keras
現在你可以嘗試運行一個 Keras 腳本,比如這個 MNIST 示例。
python examples/mnist_cnn.py
注意,完整運行這個示例可能需要幾分鐘。因此,在確認 Keras 可以正常運行之后,你可
以隨時強制退出(按 Ctrl-C)。
運行 Keras 至少一次之后,就可以在 ~/.keras/keras.json 找到 Keras 的配置文件。你可以編
輯這個文件,選擇運行 Keras 的后端: tensorflow 、 theano 或 cntk 。你的配置文件應該是
這樣的。
{
"image_data_format": "channels_last",
"epsilon": 1e-07,
"floatx": "float32",
"backend": "tensorflow"
}
運行 examples/mnist_cnn.py 這個 Keras 腳本時,你可以在另一個 shell 窗口中監控 GPU 利
用率。
$ watch -n 5 NVIDIA-smi -a --display=utilization
一切安裝完成,恭喜你!現在可以開始構建深度學習應用了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
