文章目錄
1 Anaconda
1.1 下載 Anaconda
通過國內鏡像源下載,請點擊清華開源軟件鏡像站 ,這裏我選擇 Ananconda3, python 版本爲 3.6,即 Anaconda3-5.0.1-Linux-x86_64.sh,如下圖所示。
1.2 安裝 Anaconda
先切換到 anaconda 安裝包所在的路徑下,接着執行以下命令
chiyukunpeng@chiyukunpeng:~$ cd anaconda3
chiyukunpeng@chiyukunpeng:~/anaconda3$ sh Anaconda3-5.0.1-Linux-x86_64.sh
接下來一路按回車以及輸入 yes 即可。重啓終端,輸入以下命令驗證安裝是否成功
chiyukunpeng@chiyukunpeng:~$ source ~/.bashrc
chiyukunpeng@chiyukunpeng:~$ python # 出現以下 Anaconda 的 python 環境即可
Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit() # 輸入退出此環境
1.3 conda換源
Anaconda 是深度學習環境搭建的必備工具,但服務器在國外,下載速度很慢,換爲國內源十分重要。
輸入以下命令,打開 condarc 文件
chiyukunpeng@chiyukunpeng:~$ sudo gedit ~/.condarc
然後將以下內容複製粘貼更換掉此文件內所有內容,保存退出即可。
auto_activate_base: false
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
show_channel_urls: true
2 GPU 驅動
2.1 查看 GPU
在終端輸入以下命令,查看 GPU 型號及推薦驅動
chiyukunpeng@chiyukunpeng:~$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001C20sv000017AAsd000039F5bc03sc00i00
vendor : NVIDIA Corporation
model : GP106M [GeForce GTX 1060 Mobile] # 我的GPU型號
driver : nvidia-driver-390 - third-party free
driver : nvidia-driver-435 - distro non-free
driver : nvidia-driver-410 - third-party free
driver : nvidia-driver-415 - third-party free
driver : nvidia-driver-440 - third-party free recommended # 推薦的驅動型號
driver : xserver-xorg-video-nouveau - distro free builtin
2.2 安裝驅動
在終端輸入以下命令
chiyukunpeng@chiyukunpeng:~$ sudo apt-get install nvidia-driver-440
安裝成功後,打開桌面左下角的應用程序抽屜,打開軟件和更新->附加驅動,選擇剛剛下載的驅動,如下圖所示
重啓電腦,打開終端,輸入以下命令驗證是否安裝成功
chiyukunpeng@chiyukunpeng:~$ nvidia-smi
Sun Apr 19 21:39:38 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.82 Driver Version: 440.82 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 1060 Off | 00000000:01:00.0 Off | N/A |
| N/A 45C P5 10W / N/A | 245MiB / 6078MiB | 3% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1569 G /usr/lib/xorg/Xorg 109MiB |
| 0 1743 G /usr/bin/gnome-shell 118MiB |
| 0 11018 G /usr/lib/firefox/firefox 1MiB |
| 0 11711 G ...uest-channel-token=10670826761480323022 12MiB |
+-----------------------------------------------------------------------------+
3 CUDA
3.1 gcc 降級
因爲本文將要安裝 cuda9.0,所以要把 gcc 降到 6.0 以下,在終端輸入以下命令
chiyukunpeng@chiyukunpeng:~$ sudo apt-get install gcc-4.8 # 安裝
chiyukunpeng@chiyukunpeng:~$ sudo apt-get install g++-4.8
進入 /usr/bin 路徑,輸入以下命令修改 gcc 默認鏈接
chiyukunpeng@chiyukunpeng:~$ cd /usr/bin
chiyukunpeng@chiyukunpeng:/usr/bin$ sudo mv gcc gcc.bak #備份
chiyukunpeng@chiyukunpeng:/usr/bin$ sudo ln -s gcc-4.8 gcc #重新鏈接
chiyukunpeng@chiyukunpeng:/usr/bin$ sudo mv g++ g++.bak
chiyukunpeng@chiyukunpeng:/usr/bin$ sudo ln -s g++-4.8 g++
最後驗證是否降級成功,輸入以下命令
chiyukunpeng@chiyukunpeng:/usr/bin$ gcc --version
gcc (Ubuntu 4.8.5-4ubuntu8) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
chiyukunpeng@chiyukunpeng:/usr/bin$ g++ --version
g++ (Ubuntu 4.8.5-4ubuntu8) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
3.2 下載 CUDA
本文選擇 CUDA 9.0,高版本 TensorFlow-gpu 和 Pytorch 可能還沒有支持
本文最大的福利來了,百度網盤分享給你
鏈接: https://pan.baidu.com/s/1DFIEWwGrTkTUgFjoFgsZWw 密碼: 5wei
3.3 安裝 CUDA
打開終端,進入 CUDA 安裝包路徑,執行以下命令
chiyukunpeng@chiyukunpeng:~$ cd software
chiyukunpeng@chiyukunpeng:~/software$ ls
baidunetdisk cuda_9.0.176_384.81_linux.run FoxitReader pycharm WangYiCloudMusic
Chrome cudnn-9.0-linux-x64-v7 NVIDIA_CUDA-9.0_Samples snap WPS
chiyukunpeng@chiyukunpeng:~/software$ sudo sh cuda_9.0.176_384.81_linux.run
然後會彈出一系列問題,只有下面這個問題選擇 no (因爲此前GPU驅動已經安裝了),其餘都選擇 yes, 如下
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39? ((y)es/(n)o/(q)uit): n
3.4 配置 CUDA 環境變量
回到主目錄路徑,打開 .bashrc 文件,命令如下
chiyukunpeng@chiyukunpeng:~/software$ cd
chiyukunpeng@chiyukunpeng:~$ sudo gedit ~/.bashrc
在文件末尾添加以下內容,保存退出即可
export PATH="/usr/local/cuda-9.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"
在終端輸入以下命令
chiyukunpeng@chiyukunpeng:~$ source ~/.bashrc
驗證CUDA是否安裝成功
chiyukunpeng@chiyukunpeng:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
4 CUDNN
4.1 下載 CUDNN
CUDNN 版本必須與 CUDA 版本匹配,本文選擇 CUDNN7.05,官網下載要先註冊的哦
本文第二大福利來啦,百度網盤分享給你
鏈接: https://pan.baidu.com/s/1kgCvW8mQ19pte8kIWPnR5w 密碼: 6bg2
4.2 安裝 CUDNN
先解壓壓縮包,然後在終端進入解壓文件夾路徑,命令如下
chiyukunpeng@chiyukunpeng:~$ cd software
chiyukunpeng@chiyukunpeng:~/software$ ls
baidunetdisk cudnn-9.0-linux-x64-v7 pycharm WPS
Chrome FoxitReader snap
cuda_9.0.176_384.81_linux.run NVIDIA_CUDA-9.0_Samples WangYiCloudMusic
chiyukunpeng@chiyukunpeng:~/software$ cd cudnn-9.0-linux-x64-v7
chiyukunpeng@chiyukunpeng:~/software/cudnn-9.0-linux-x64-v7$ cd cuda
chiyukunpeng@chiyukunpeng:~/software/cudnn-9.0-linux-x64-v7/cuda$ sudo cp lib64/* /usr/local/cuda/lib64/ # 複製相應文件
chiyukunpeng@chiyukunpeng:~/software/cudnn-9.0-linux-x64-v7/cuda$ sudo cp include/* /usr/local/cuda/include/
chiyukunpeng@chiyukunpeng:~/software/cudnn-9.0-linux-x64-v7/cuda$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* # 所有用戶可讀
CUDNN 安裝成功。
5 TensorFlow-gpu
5.1 安裝 tensorflow-gpu
安裝前,請點擊TensorFlow官網 查看版本匹配信息,
本文第三大福利來啦,版本匹配信息如下圖所示。
本文選擇下載1.12.0版本,在終端輸入如下命令
chiyukunpeng@chiyukunpeng:~$ pip install tensorflow-gpu==1.12.0
5.2 測試
在主目錄下,輸入如下命令
chiyukunpeng@chiyukunpeng:~$ python
Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> print(tf.__version__)
1.12.0
>>> exit()
恭喜你,tensorflow-gpu 安裝成功!!!
6 PyTorch
6.1 前言
前五節,我們完成了深度學習框架 TensorFlow-gpu 的安裝,爲何還要再安裝另一個深度學習框架 Pyorch 呢?
因爲目前越來越多的學術黨開源的項目用的都是這個,不會不行阿,所以必須重新創建一個新環境,安裝一下這個框架。
6.2 安裝 PyTorch
打開終端,創建一個新的 anaconda 虛擬環境,本文命名爲 pytorch,命令如下
chiyukunpeng@chiyukunpeng:~$ conda create -n pytorch python=3.6
Fetching package metadata .................
Solving package specifications: .
Package plan for installation in environment /home/chiyukunpeng/anaconda3/envs/pytorch:
The following NEW packages will be INSTALLED: # 這裏體會到 conda 換源的好處了吧
_libgcc_mutex: 0.1-conda_forge https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
_openmp_mutex: 4.5-0_gnu https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
bzip2: 1.0.8-h516909a_2 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
ca-certificates: 2020.4.5.1-hecc5488_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
certifi: 2020.4.5.1-py36hc560c46_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
expat: 2.2.9-he1b5a44_2 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
gdbm: 1.18-h0a1914f_1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
ld_impl_linux-64: 2.34-h53a641e_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libffi: 3.2.1-he1b5a44_1007 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libgcc-ng: 9.2.0-h24d8f2e_2 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libgomp: 9.2.0-h24d8f2e_2 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libstdcxx-ng: 9.2.0-hdf63c60_2 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
ncurses: 6.1-hf484d3e_1002 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
openssl: 1.1.1f-h516909a_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
pip: 20.0.2-py_2 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
pypy3.6: 7.3.1-h3e02ecb_1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
python: 3.6.10-h8356626_1010_cpython https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
python_abi: 3.6-1_pypy36_pp73 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
readline: 8.0-hf8c457e_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
setuptools: 46.1.3-py36hc560c46_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
sqlite: 3.30.1-hcee41ef_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
tk: 8.6.10-hed695b0_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
wheel: 0.34.2-py_1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
xz: 5.2.5-h516909a_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
zlib: 1.2.11-h516909a_1006 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
Proceed ([y]/n)? y
_libgcc_mutex- 100% |######################################################| Time: 0:00:00 1.84 MB/s
ca-certificate 100% |######################################################| Time: 0:00:00 643.45 kB/s
ld_impl_linux- 100% |######################################################| Time: 0:00:00 1.91 MB/s
libstdcxx-ng-9 100% |######################################################| Time: 0:01:05 71.46 kB/s
libgomp-9.2.0- 100% |######################################################| Time: 0:00:03 262.33 kB/s
_openmp_mutex- 100% |######################################################| Time: 0:00:00 2.80 MB/s
libgcc-ng-9.2. 100% |######################################################| Time: 0:00:09 906.65 kB/s
bzip2-1.0.8-h5 100% |######################################################| Time: 0:00:00 1.99 MB/s
expat-2.2.9-he 100% |######################################################| Time: 0:00:00 2.47 MB/s
libffi-3.2.1-h 100% |######################################################| Time: 0:00:00 3.32 MB/s
ncurses-6.1-hf 100% |######################################################| Time: 0:00:01 1.29 MB/s
openssl-1.1.1f 100% |######################################################| Time: 0:00:08 250.19 kB/s
xz-5.2.5-h5169 100% |######################################################| Time: 0:00:00 3.50 MB/s
zlib-1.2.11-h5 100% |######################################################| Time: 0:00:00 3.97 MB/s
readline-8.0-h 100% |######################################################| Time: 0:00:00 2.99 MB/s
tk-8.6.10-hed6 100% |######################################################| Time: 0:00:02 1.28 MB/s
gdbm-1.18-h0a1 100% |######################################################| Time: 0:00:00 1.66 MB/s
sqlite-3.30.1- 100% |######################################################| Time: 0:00:01 1.59 MB/s
pypy3.6-7.3.1- 100% |######################################################| Time: 0:00:26 1.23 MB/s
python-3.6.10- 100% |######################################################| Time: 0:00:39 900.41 kB/s
python_abi-3.6 100% |######################################################| Time: 0:00:00 8.60 MB/s
certifi-2020.4 100% |######################################################| Time: 0:00:00 1.36 MB/s
setuptools-46. 100% |######################################################| Time: 0:00:01 558.58 kB/s
wheel-0.34.2-p 100% |######################################################| Time: 0:00:00 5.53 MB/s
pip-20.0.2-py_ 100% |######################################################| Time: 0:00:00 1.64 MB/s
#
# To activate this environment, use:
# > source activate pytorch
#
# To deactivate an active environment, use:
# > source deactivate
#
虛擬環境創建成功,激活此環境,命令如下
chiyukunpeng@chiyukunpeng:~$ source activate pytorch
(pytorch) chiyukunpeng@chiyukunpeng:~$
安裝 pytorch 之前,請點擊PyTorch官網 查看匹配版本及下載命令,本文選擇1.0.0
本文第四大福利來啦,版本匹配信息如下圖
這裏請注意,每個命令後的 -c pytorch 是從官網下載,大家不要加上這個,安裝命令如下
(pytorch) chiyukunpeng@chiyukunpeng:~$ conda install pytorch==1.0.0 torchvision==0.2.1 cuda90
Fetching package metadata .................
Solving package specifications: .
Package plan for installation in environment /home/chiyukunpeng/anaconda3/envs/pytorch:
The following NEW packages will be INSTALLED: # conda 換源就是爽
cffi: 1.14.0-py36hd463f26_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
cuda90: 1.0-h6433d27_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
freetype: 2.10.1-he06d7ca_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
intel-openmp: 2020.0-166 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
jpeg: 9c-h14c3975_1001 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libblas: 3.8.0-14_openblas https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libcblas: 3.8.0-14_openblas https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libgfortran-ng: 7.3.0-hdf63c60_5 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
liblapack: 3.8.0-14_openblas https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libopenblas: 0.3.7-h5ec1e0e_6 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libpng: 1.6.37-hed695b0_1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libtiff: 4.1.0-hc7e4089_6 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
libwebp-base: 1.1.0-h516909a_3 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
lz4-c: 1.9.2-he1b5a44_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
mkl: 2020.0-166 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
ninja: 1.10.0-hc9558a2_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
numpy: 1.18.1-py36he0f5f23_1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
olefile: 0.46-py_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
pillow: 7.1.1-py36hfc7c323_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
pycparser: 2.20-py_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
pytorch: 1.0.0-py3.6_cuda9.0.176_cudnn7.4.1_1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
six: 1.14.0-py_1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
torchvision: 0.2.1-py_2 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
zstd: 1.4.4-h6597ccf_3 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
Proceed ([y]/n)? y
cuda90-1.0-h64 100% |######################################################| Time: 0:00:00 2.21 MB/s
intel-openmp-2 100% |######################################################| Time: 0:00:00 1.98 MB/s
libgfortran-ng 100% |######################################################| Time: 0:00:00 13.21 MB/s
mkl-2020.0-166 100% |######################################################| Time: 0:05:42 618.83 kB/s
jpeg-9c-h14c39 100% |######################################################| Time: 0:00:00 2.53 MB/s
libopenblas-0. 100% |######################################################| Time: 0:00:06 1.33 MB/s
libwebp-base-1 100% |######################################################| Time: 0:00:00 959.85 kB/s
lz4-c-1.9.2-he 100% |######################################################| Time: 0:00:00 623.38 kB/s
ninja-1.10.0-h 100% |######################################################| Time: 0:00:01 1.86 MB/s
libblas-3.8.0- 100% |######################################################| Time: 0:00:00 8.32 MB/s
libpng-1.6.37- 100% |######################################################| Time: 0:00:00 3.14 MB/s
zstd-1.4.4-h65 100% |######################################################| Time: 0:00:00 1.48 MB/s
freetype-2.10. 100% |######################################################| Time: 0:00:00 2.17 MB/s
libcblas-3.8.0 100% |######################################################| Time: 0:00:00 8.41 MB/s
liblapack-3.8. 100% |######################################################| Time: 0:00:00 7.49 MB/s
libtiff-4.1.0- 100% |######################################################| Time: 0:00:00 2.28 MB/s
olefile-0.46-p 100% |######################################################| Time: 0:00:00 15.45 MB/s
pycparser-2.20 100% |######################################################| Time: 0:00:00 1.38 MB/s
six-1.14.0-py_ 100% |######################################################| Time: 0:00:00 11.34 MB/s
cffi-1.14.0-py 100% |######################################################| Time: 0:00:00 4.79 MB/s
numpy-1.18.1-p 100% |######################################################| Time: 0:00:03 1.73 MB/s
pillow-7.1.1-p 100% |######################################################| Time: 0:00:00 1.02 MB/s
pytorch-1.0.0- 100% |######################################################| Time: 0:09:25 925.37 kB/s
torchvision-0. 100% |######################################################| Time: 0:00:00 49.84 MB/s
6.3 測試
測試命令如下
(pytorch) chiyukunpeng@chiyukunpeng:~$ python
Python 3.6.10 | packaged by conda-forge | (default, Apr 6 2020, 14:52:36)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
>>> exit()
恭喜你,第二個深度學習框架安裝成功啦!!!
最後,別忘了關閉這個虛擬環境哦
(pytorch) chiyukunpeng@chiyukunpeng:~$ source deactivate pytorch
陌生人,點個贊再走唄!