600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 深度学习Pytorch/Caffe-GPU环境配置

深度学习Pytorch/Caffe-GPU环境配置

时间:2018-09-08 12:36:33

相关推荐

深度学习Pytorch/Caffe-GPU环境配置

双系统Ubuntu16.04.06LTS+Nvidia显卡驱动 + Cuda9.0 + CuDNN7.4.2 +Opencv 3.4.6 + Pytorch/Caffe-GPU

目录

一、安装双系统

二、安装显卡驱动

三、安装Cuda9.0

四、安装CuDNN

五、Opencv 3.4.6

六、安装Pytorch

七、安装Caffe-GPU

深度学习环境的搭建比较复杂,重要的是掌握整体的安装思路,这样才能游刃有余地应对由于软件硬件环境不同所带来的各种问题!

一、安装双系统

建议双系统,不要用虚拟机,因为虚拟机无法访问显卡,无法安装显卡驱。

电脑硬件:HP OMEN 15-dc0011tx 暗影精灵 IV 代 144HZ i7-8750H 8G 128GSSD+1T GTX1060 6G独显;

软件:Window10家庭版64位(10.0,版本16299)+EUFI启动+GPT硬盘格式

准备工作:

关闭快速启动:电源选项--选择电源按钮的功能--更改当前不可用的设置--取消选择"启用快速启动(推荐)"禁用安全启动:进入BIOS(F10 for HP), 系统设置--安全启动模式--禁用安全启动(disable)电脑分区:在SSD盘中分出50G, 机械硬盘压缩出 600G。Ubuntu16.04.06LTS系统官网下载后用Ultraiso软件将镜像文件写入到U盘。

详细步骤可以查看 jiajinrang93的博客Window10系统下安装Ubuntu双系统教程及一些问题的解决办法(重要)以及 Ryan的博客:环境配置1-安装Ubuntu双系统

U盘启动进入Ubuntu安装界面:

安装Ubuntu系统时断网,防止在选地图处安装程序卡死;不勾选安装时更新,不勾选安装第三方软件;Ubuntu系统的界面语言选择英文,后面安装中文输入法就好。安装类型:选择“其他选项”,自己创建调整分区。注意不要选“这台计算机已经安装了win10, 与win10共存”,否则Ubuntu引导会破坏win10引导,导致之后需要卸载Ubuntu删除引导时原来系统无法恢复。添加Ubuntu系统分区: EFI系统分区:从之前SSD硬盘压缩出的freespace中添加出 1G (注意EUFI启动是设置EFI system,而不是老版本grub引导的/boot),逻辑分区swap:主分区,SSD硬盘8G(因为我的电脑内存是8G的)。挂载 /usr : 软件安装位置 ;SSD硬盘25G (如果硬盘更大,可以分配30~50G),Ext4日志文件系统,逻辑分区挂载 / :除了home和usr的其他目录,如bin,dev,etc,lib,sys等; SSD硬盘16G,Ext4日志文件系统,逻辑分区/home :个人文件夹,存放自己的各种文件,下载的内容等,是最大的文件系统,所以使用从机械硬盘中压缩出的600G,Ext4日志文件系统,逻辑分区关键:安装启动引导器的设备选择刚刚添加的EFI system,千万不要按照默认的覆盖掉win10的启动引导器!!!!!

参考资料: Carina_Cao的博客:双硬盘SSD+HDD+ win10装双系统Ubuntu16.04

启动时选择系统:

安装好后,引导会自动通过ubuntu引导;EUFI启动的安装无需再用软件制作引导;如果要使用window, 建议F9(惠普)选择window启动,而不是在ubuntu引导界面进入win10, 否则启动window10会很慢(>1min);如果经常使用window,偶尔使用ubuntu,可以在BIOS的 系统设置--操作系统的启动管理员 中把window引导设为优先,每次开机即自动进入window系统,需要ubuntu系统是用F9选择启动系统。

系统安装完成后可查看系统信息:

lsb_release -a

例如,返回:

Distributor ID: Ubuntu

Description: Ubuntu 16.04.6 LTS//6月4月发布的稳定版本,LTS是Long Term Support:长时间支持版本

Release: 16.04//发行日期或者是发行版本号

Codename: xenial//ubuntu的代号名称

安装好系统后的一些快速配置工作:

进入Ubuntu系统后,system settings中选择Brightness&Lock,把关闭屏幕时间选择Never,并关闭Lock。不要安装软件中心弹出的自动更新!Ubuntu系统无线网卡可能不能用,需要先连网线升级ubuntu软件包,方法:

sudo apt-get update //查看可安装的软件列表sudo apt-get upgrade //进行安装包的更新

对于新上市的电脑,可能用的无线网卡还没有出linux系统的驱动,可以自己买一个外置的无线网卡,插在USB口使用。

为Ubuntu系统安装中文输入法: 打开 系统设置->语言支持(System->Language Support),系统自动更新语言包;将键盘输入法系统由默认的iBus改为fcitx ,因为搜狗输入法是基于fcitx输入法系统的(如果Keyboard input method system的下拉菜单中不显示fcitx选项,就把Language for menus and windows中的灰色的汉语选项移到最顶端,fcitx即可刷新出来,然后再把English移到顶端); 下载搜狗输入法deb包并安装,方法:

sudo dpkg -i sogoupinyin_2.2.0.0108_amd64.deb //包名称跟自己的版本保持一致

如果安装出现"dependency problems-leaving unconfigured"问题,则运行如下命令修复依赖项:

sudo apt-get install -f

然后再运行安装命令,成功安装。

最后,选择输入法,(可能需要重启),configure添加sogou输入法,置顶。

二、安装显卡驱动

查看显卡类型:

lspci | grep -i nvidia

结果显示:01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile 6GB] (rev a1))

准备工作:到NVIDIA官网下载匹配自己显卡的驱动,我的版本为 NVIDIA-Linux-x86_64-418.74.run ;

设置权限:

sudo chmod a+x NVIDIA-Linux-x86_64-418.74.run

禁用安全启动Secure Boot !!! (有人安装完双系统后恢复了安全启动,这会导致显卡驱动作为第三方软件无法正常安装,Ubuntu系统输入密码登陆后又不能进入系统,又跳回输入密码登录的界面)

安装思路:

1、禁用nouveau

打开黑名单:

sudo gedit /etc/modprobe.d/blacklist.conf

文件末尾添加:

blacklist vga16fbblacklist nouveaublacklist rivafbblacklist rivatvblacklist nvidiafb

PS: 禁用后执行以下命令,使得禁用立即生效。

sudo update-initramfs -u

2、删除原有的NVIDIA驱动

sudo apt-get --purge remove nvidia-*sudo apt-get --purge remove xserver-xorg-video-nouveau

重启电脑!!!

3、按Ctrl + Alt +F1到第一控制台(+F7是回到桌面)

PS: Omen电脑进入第一控制台后不断显示"acpi INT3400:00:Unsupported event [0x86]",拔掉电源线后不再显示错误。ACPI即Advanced Configuration and Power Interface,可能是因为主板BIOS对acpi规范支持不好造成的,可进入BIOS关闭acpi功能。

4、结束X桌面服务,sudo service lightdm stop

5、进行安装

sudo ./NVIDIA-Linux-x86_64-418.74.run --no-x-check --no-nouveau-check --no-opengl-files

6、安装完成后,sudo service lightdm start

具体安装步骤可参考: Ryan的博客:环境配置2-Ubuntu下安装NVIDIA显卡驱动

安装完后,一定要检查是否显卡已经正确安装,以便在后面安装Cuda出现问题时确认不是显卡驱动的问题。 方法:

nvidia-smi

PS:关闭Ubuntu的Software&Updates自动更新,否则自动更新后可能导致Nvidia显卡驱动失效,需要重新安装Nvidia显卡驱动。

注意:最好不要自动安装显卡,即使用sudo add-apt-repository ppa:graphics-drivers/ppa工具,容易导致Ubuntu系统黑屏。

三、安装Cuda9.0

概述:深度学习需要大量的算力,模型的训练和推理在GPU上并行运行计算的速度是CPU的2~10倍,甚至更多。Cuda(Compute Unified Device Architecture)就是调用GPU的工具包,包括GPU加速库、调试和优化工具、C/C++编译器(nvcc)和动态链接库。调用GPU的cuda语言存放在.cu文件中,该语言是nvidia公司结合C/C++编写的,语法支持大部分C/C++,然后根据需要设计了一些其他的语法。

版本:显卡驱动支持的Cuda版本及其对应的Cudnn版本官网查询链接:/deeplearning/sdk/cudnn-support-matrix/index.html

Cuda官方安装指南可参见:https://developer./compute/cuda/9.0/Prod/docs/sidebar/CUDA_Quick_Start_Guide.pdf (这里使用run文件安装,因为按照官网文档中的deb方法尝试无法正常安装)

深入学习cuda的官方资料:/cuda/index.html

安装思路:

1.更新仓库源

sudo apt-get updatesudo apt-get upgrade

2.安装依赖项

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilersudo apt-get install --no-install-recommends libboost-all-devsudo apt-get install libopenblas-dev liblapack-dev libatlas-base-devsudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-devsudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

3. Nvidia官网下载CUDA9.0,并运行安装。

sudo chmod a+x cuda_9.0.176_384.81_linux.run sudo sh cuda_9.0.176_384.81_linux.run

注意:安装界面会询问Install NVIDIA Accelerated Graphics Driver for Linux-86_64? 选择no !!! 因为之前已经手动安装了适合自己版本的显卡驱动。剩下的都选择默认值。

4. 配置环境变量

sudo gedit ~/.bashrc

在打开的文件末尾加入

export CUDA_HOME=/usr/local/cuda-9.0export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}} //包括nvcc等工具export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} //包括cublas等库

刷新

source ~/.bashrc

如果gedit打不开~/.bashrc,可以使用

sudo vim ~/.bashrc

备注1:其中添加链接库路径的命令export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}也可通过如下方式替代:

sudo gedit /etc/ld.so.conf.d/cuda.conf

写入

/usr/local/cuda-9.0/lib64

更新

sudo ldconfig

参考:Ryan的博客: 环境配置3-Ubuntu下安装CUDA8.0和cuDNN

备注2:我们看网上其他教程会发现有的教程是往其他文件中写入环境变量的,这里简要说明下不同文件写入环境变量的区别:

安装完后,检查Cuda是否已经正确安装,

nvcc --version

再跑一个例子确认是否正确,

cd /home/yly/NVIDIA_CUDA-9.0_Samples # 安装CUDA时软件自动指定的安装sample的路径 or /usr/local/cuda/samples (not recommanded,因为编译生成的程序会占用/usr的空间)sudo make clean && sudo make -j$(nproc) -Wno-deprecated-gpu-targetscd bin/x86_64/linux/release./deviceQuery./bandwidthTest

若编译通过则表示已经正确安装。

可参考爱吃鱼的猫的博客: ubuntu下安装cuda+cudnn步骤。

PS: 卸载Cuda (若以后更新Cuda版本需要卸载旧版的Cuda)

sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl

这样,/usr/local/cuda目录就清除了。若 /usr/local/cuda-9.0目录下仍有cudnn文件,手动删除cuda-9.0文件夹:

sudo rm -rf /usr/local/cuda-9.0

备注:升级Cuda教程可参见:/Cxiazaiyu/article/details/115608705

四、安装CuDNN

CuDNN是Cuda的扩展库,专为深度学习打造。

安装CuDNN可以直接使用deb文件安装,也可以使用tgz压缩文件手动安装。

方法一:使用deb文件直接安装

依次安装runtime library, developer library和code samples。使用命令:

sudo dpkg -i libcudnn7_7.4.2.24-1+cuda9.0_amd64.debsudo dpkg -i libcudnn7-dev_7.4.2.24-1+cuda9.0_amd64.debsudo dpkg -i libcudnn7-doc_7.4.2.24-1+cuda9.0_amd64.deb

则cudnn默认被安装在如下路径:

/usr/include/x86_64-linux-gnu/cudnn_v7.h/usr/lib/x86_64-linux-gnu/libcudnn_static_v7.a/usr/lib/x86_64-linux-gnu/libcudnn.so/usr/lib/x86_64-linux-gnu/libcudnn.so.7.4.2/usr/lib/x86_64-linux-gnu/libcudnn_static.a/usr/lib/x86_64-linux-gnu/libcudnn.so.7

备注:编译CuDNN的例子可能出现如下bug:

Testing single precisionCUDNN failureError: CUDNN_STATUS_INTERNAL_ERRORmnistCUDNN.cpp:394Aborting...

这是由于破坏的缓存导致CUBLAS不工作,解决方案:

sudo rm -rf .nv/

参考文件:/default/topic/1025900/cudnn/cudnn-fails-with-cudnn_status_internal_error-on-mnist-sample-execution/

PS:code samples是依赖于developer library;如果在未安装developer library的条件下运行安装code samples,会导致dependencies error,需要运行:

sudo apt-get install -f

以卸载未成功安装的文件。

测试是否能正常运行:官网下载code samples, 如果下载的tgz版本直接解压;如果下载的是deb版本,被安装在了/usr/src/cudnn_samples_v7下,放到有操作权限的路径下:

$cp -r /usr/src/cudnn_samples_v7/ $HOME$ cd $HOME/cudnn_samples_v7/mnistCUDNN

进行编译:

$make clean && make$ ./mnistCUDNN

若出现 Test passed! 表示安装成功。(具体步骤可参考NVIDIA官方文档 。)

卸载cudnn:

sudo dpkg -l grep cudnn| #查看dpkg安装的软件

显示:

||/ Name Version Architecture Description

+++-==============-============-============-=================================

ii libcudnn7 7.4.2.24-1+cuda9.0 amd64 cuDNN runtime libraries

ii libcudnn7-dev 7.4.2.24-1+cuda9.0 amd64 cuDNN development libraries and headers

ii libcudnn7-doc 7.4.2.24-1+cuda9.0 amd64 cuDNN documents and samples

随后,依次卸载:

sudo dpkg -r libcudnn7-docsudo dpkg -r libcudnn7-devsudo dpkg -r libcudnn7

方法二:使用tgz压缩文件手动安装

CuDNN就是拷贝几个文件,换不同版本也只需要删除原来的文件后加入新版的文件。

解压:

$ tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz

复制到路径并设置权限

$ 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*

生成软连接(如果没有这步可能找不到某些库,具体so.**数字根据自己下载的文件确定):

cd /usr/local/cuda-9.0/lib64/sudo rm -rf libcudnn.so libcudnn.so.7 sudo ln -sf libcudnn.so.7.4.2 libcudnn.so.7 //建立软连接libcudnn.so.7指向libcudnn.so.7.4.2sudo ln -sf libcudnn.so.7 libcudnn.so

具体步骤可参考NVIDIA官方文档 。

PS:cuDNN是CUDA扩展库,这种安装方式是插入式;因此,如果想要卸载CuDNN,也只需要删除这些文件:

$ sudo rm /usr/local/cuda/include/cudnn.h $ sudo rm -r /usr/local/cuda/lib64/libcudnn*

查看CuDNN信息:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

五、Opencv 3.4.6

下面讲述opencv安装,支持C++和python。其中,Ubuntu16.04.06LTS系统内置了python2.7和python3.5,可以安装Opencv同时支持python2和python3。

1、先安装依赖项

如果在系统中共存python2和python3, 依赖项要同时安装python2和3的依赖项。其中,python2.7相关的库自动安装在/usr/local/lib/python2.7/dist-packages/文件夹下,python3.5相关的库自动安装在/usr/local/lib/python3.5/dist-packages/文件夹下。

更新包:

sudo apt-get updatesudo apt-get upgrade #apt下载的deb包安装在/var/cache/apt/archives

安装系统环境库:

#Remove any previous installations of x264</h3> if they were installedsudo apt-get remove x264 libx264-dev#Install dependencies sudo apt-get install build-essential checkinstall cmake pkg-config yasm #Platformsudo apt-get install git gfortransudo apt-get install libjpeg8-dev libjasper-dev libpng12-dev #Media I/Osudo apt-get install libtiff5-dev #Media I/Osudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev # Video I/Osudo apt-get install libxine2-dev libv4l-devsudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev #GStreamersudo apt-get install qt5-default libgtk2.0-dev libtbb-devsudo apt-get install libatlas-base-devsudo apt-get install libfaac-dev libmp3lame-dev libtheora-devsudo apt-get install libvorbis-dev libxvidcore-dev #libvorbis-dev: development files for Vorbis General Audio Compression Codec; libxvidcore-dev: open source MPEG-4 video codecsudo apt-get install libopencore-amrnb-dev libopencore-amrwb-devsudo apt-get install x264 v4l-utils# Optional dependenciessudo apt-get install libprotobuf-dev protobuf-compilersudo apt-get install libgoogle-glog-dev libgflags-devsudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen

安装Python依赖库:

sudo apt-get install python-dev python-pip python3-dev python3-pipsudo -H pip2 install -U pip numpy # 安装或升级(如果已经安装了旧版本)pip和numpysudo -H pip3 install -U pip numpy # -U:update, 如果已经安装了旧版本,则升级到新版; sudo -H: set-home, 使用sudo命令默认把HOME environment variable设定在/root,不使用sudo则设定在/home/username下,-H则实现即使用sudo的权限,又将HOME environment variable设定在当前用户的/home/username路径下#Optinal:sudo pip install scipy matplotlib scikit-image scikit-learn ipythonsudo pip3 install scipy matplotlib scikit-image scikit-learn ipython

PS (Optinal):

sudo apt-get install libtbb2 python-numpy python3-numpy libpython3.5-dev python3-setuptools

2、编译

下载opencv安装包,并编译:

mkdir buildcd build

cmake使用默认设置生成makefile

cmake ../ #使用默认设定

或者根据需要修改设置(推荐)

cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \-D INSTALL_C_EXAMPLES=ON \-D INSTALL_PYTHON_EXAMPLES=ON \-D WITH_TBB=ON \-D WITH_V4L=ON \-D WITH_QT=ON \-D WITH_OPENGL=ON \-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \-D BUILD_EXAMPLES=ON .. #自定义cmake的一些设置,语法: -D <var>=<value> 创建一个cmake缓存条目,可以在CMakeCache.txt文件中查看(When cmake is first run in an empty build tree, it creates a CMakeCache.txt file and populates it with customizable settings for the project. This option may be used to specify a setting that takes priority over the project's default value. )

其他设置可以参考://09/Install-opencv-cuda-python3.html

make -j$(nproc)sudo make install #完成将动态链接库和pkgconfig安装到/usr/local/lib; 头文件安装到/usr/local/include

3、Opencv的库安装在/usr/local/lib, 设置lib库路径:

以下几种方法都可以实现路径配置,任选其一即可。

方法一:

sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'sudo ldconfig

方法一的等效版本:打开配置文件后手动添加:

sudo gedit /etc/ld.so.conf.d/opencv.conf

在文件中添加:

/usr/local/lib

使之立即生效:

sudo ldconfig

方法二:配置环境变量

pkgconfig是用户向程序提供相应库的路径、版本号等信息的程序,其中的opencv.pc封装了库文件路径、头文件路径、版本号、Cflags等参数。(例如,可以通过pkg-config opencv --libspkg-config opencv --modversion命令分别查看opencv安装的库或者版本号。)pkgconfig首先在 /usr/lib/pkconfig/路径下查找opencv.pc;若没有找到,再到PKG_CONFIG_PATH这个环境变量所指定的路径下搜索;若仍未找到,就报错。

这里手动把opencv.pc所在路径添加到环境变量PKG_CONFIG_PATH中,具体方法如下:

sudo gedit /etc/profile

在最后一行添加:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

保存并使环境变量立即生效:

source /etc/profile

4、测试是否安装成功。

可在 OpenCV官方安装文档 中下载测试代码,测试C++和python是否成功安装。

使用cmake-gui进行配置,详细步骤可参见oppo62258801的博客:Ubuntu16.04+Cuda8.0(gtx1060)+OpenCV2.4.13+anaconda2+caffe详细配置。里面写了安装完后如何测试是否成功。

六、安装Pytorch-GPU

Pytorch安装简洁。

sudo apt updatesudo apt install python3-pip # pip for python3sudo apt install python2-pip # pip for python2

通过官网命令安装。

或者官网下载,如torch-0.2.0.post3-cp36-cp36m-manylinux1_x86_64.whl , 其中0.2.0表示PyTorch版本,cp36表示支持Python3.6,cuda80表示支持GPU版本。

Tricks:

有时连网下载慢、多次中断,可以尝试手机开热点下载。如果仍无法直接下载,可以到torch下载网站 和torchvision下载网站 下载指定版本的wheel文件,然后使用如下命令安装。

sudo pip3 install torch-0.2.0.post3-cp36-cp36m-manylinux1_x86_64.whl

步骤可参见红色石头的专栏: Ubuntu16.04环境下PyTorch简易安装教程。

最后通过验证是否已经正确安装,方法:

pythonimport torchprint(torch.cuda.is_available())

若显示true则表示安装成功。

查看pytorch及其匹配的cuda\cudnn\torchvision安装的版本:

import torchprint(torch.__version__) print(torch.version.cuda)print(torch.backends.cudnn.version())import torchvisionprint(torchvision.__version__)

Pytorch作为python的包被安装在/usr/local/lib/python3.5/dist-packages/torch/ 路径下。

如果需要版本降级或者安装指定版本,可以参见另一篇博文:/Cxiazaiyu/article/details/91129657 。

关于Pytorch的C++接口,即libtorch部署可以参见libtorch官方文档 。

七、安装Caffe-GPU

稍微有些复杂,单独写了一篇博客,请见链接/Cxiazaiyu/article/details/81366171

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。