Deepin 15.11 配置深度学习环境

Deepin 15.11 配置深度学习环境

一、安装deepin15.11 系统

1、在DeepIn官网下载iso文件

http://cdimage.deepin.com/releases/15.11/deepin-15.11-amd64.iso

2、下载制作upan启动工具

Deepin官方给的深度U盘启动工具,我这里在win7上启动不了,放弃了。还是使用rufus来制作。

3、安装系统

在BIOS中设置U盘启动,安装过程和安装Ubuntu一样,没有任何问题

二、配置deepin相关环境

刚安装完系统进入之后,显示器的分辨率会有问题,这是因为显卡驱动没装导致的

1、安装显卡驱动

由于后期是需要安装深度学习的cuda和cudnn,所以在安装显卡驱动的时候要和cuda版本一致,在官网上下载cuda的包,里面会包含有显卡的驱动。

https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal

选择ubuntu16.04下载,下载之后就开始安装驱动程序

1、更新PCI ID
sudo update-pciids

2、验证是否能找到显卡
sudo lspci | grep -i nvidia

3、禁用nouveau驱动
sudo vim /etc/modprobe.d/blacklist.conf
在文件末尾加入一下内容
blacklist nouveau
options nouveau modeset=0

4、更新一下
sudo update-initramfs -u

5、重启电脑
sudo reboot

6、进入系统之后,Ctrl+Alt+F2进入终端
sudo service lightdm stop
sudo telinit 3

7、开始安装
sudo ./cuda_10.1.168******_linux.run
只选择安装驱动,其他都不要,显示驱动安装成功之后可以重启电脑

8、安装成功
安装成功之后,进入系统的显示界面分辨率就会变成正常的
nvidia-smi
可以验证是否驱动安装成功

2、安装cuda和cudnn

进入系统之后运行安装cuda的sh文件,然后一步一步地确认,不要选择驱动安装就好。

解压cudnn的压缩包,将include中的头文件拷贝到/usr/local/cuda/include,将lib中的所有文件拷贝到/usr/local/cuda/lib64,然后进入到/usr/local/cuda/lib64路径下,先删除原来的cudnn的软连接,然后重新建立新的软连接。

安装多个版本的cudnn,只需要将/usr/local/cuda 软链接指向想用的cuda版本就行了

3、编译opencv

直接下载opencv源码编译,没有遇到编译问题

4、编译caffe

完全按照ubuntu16.04上的安装方法,进行编译遇到一个问题

/usr/local/include/boost/config/compiler/nvcc.hpp:22:34: error: token ""__CUDACC_VER__ is no longer supported.  Use __CUDACC_VER_MAJOR__, __CUDACC_VER_MINOR__, and __CUDACC_VER_BUILD__ instead."" is not valid in preprocessor expressions
 #if !defined(__CUDACC_VER__) || (__CUDACC_VER__ < 70500)

这个问题是boost版本过高导致的,手动下载低版本的boost,然后源码编译

1、下载boost 1.58
wget -O boost_1_58_0.tar.bz2 http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.bz2/download

2、解压文件
tar --bzip2 -xvf boost_1_58_0.tar.bz2 

3、安装 
cd boost_1_58_0
./bootstrap.sh --with-libraries=all --with-toolset=gcc
./b2 toolset=gcc
sudo ./b2 install --prefix=/usr
sudo ldconfig

重新编译caffe源码,完成。

5、使用caffe训练自己的数据

caffe环境是cuda10+cudnn7

使用caffe训练pelee-ssd

出现两个问题,第一个如下

match_functions.cpp:250] Check failed:a <= b(0 vs. -1.19209e-07) Check failure stack trace: ***

第二个

blocking_queue.cpp:50] Data layer prefetch queue empty

第一个问题,很有可能是运算的精度导致的bug,查了很多资料,让我去屏蔽src/caffe/util/math_functions.cpp 中的报错的这一行,这么做明显是掩耳盗铃,虽然暂时没有出现问题了,但是很有可能就会后面不知名的错误。现在依然不知道具体是什么原因导致,暂时猜想是libc这类的底层库运算精度导致。

第二个问题,表面现象看来是GPU的速度快于CPU的速度,GPU处于等待状态,等待CPU送数据进来。通常是PC上有运行其他的大型的程序拖慢了CPU运算速度,其实不是的。这就是整个训练程序中的某个小bug。

训练,我还是放弃了,最终换到ubuntu服务器上训练了。相同的代码,相同的网络,非常正常!

6、搭建pytorch环境
直接使anaconda创建了虚拟环境之后安装
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
官网安装命令
拆袋即食!

最后求一波关注,公众号搜索 “ 卡本特 ”
在这里插入图片描述

发布了65 篇原创文章 · 获赞 63 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/qq_17278169/article/details/103403306