安装:caffe-ssd+python3.5(系统自带)+cuda9.0+cudnn7.1+ubuntu16.04

哈喽!又是我!我又回来了!(最近因为项目需要在机子上搭了一遍又一遍的环境,今天,我要讲讲这些血泪史,这是在anaconda3搭载无果之后的退居策略)

首先,还是同我上一篇一样,先讲cunda9.0,cundnn7.1装好,具体如下:
1,安装显卡驱动(采用懒人方式)
one:在“软件与更新”的第二项(另外源)的 canonical partners 打上沟,或者全部都打钩(保险起见)
second:在倒数第二项的 “附加驱动”里,系统会自动搜索N卡驱动,选择优先级高的英伟达驱动安装,重启
注意:
third:一般需要重启才能检测到安装成功:终端输入sudo nvidia-smi
若列出了GPU的信息列表则表示驱动安装成功。

2,安装cuda9.0:
从cuda官网下载对应版本的(我用的是1050ti显卡,下载的是cuda9.0)
one:进入cuda下载的文件夹:
输入以下命令:
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb (具体 看实际的包)
sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub(若cuda<9.0的,就不用,具体在下载的网页有提示)
sudo apt-get update
sudo apt-get install cuda
安装完成后, 重启一下;

3,安装cudnn7.1
安装cuDNN (计算能力小于3.0的,不兼容cudnn的英伟达显卡不需要装cudnn,则忽略此步骤)
注册,然后下载,(注册邮箱最好是使用国外邮箱[Google, apple], 验证邮件很快就能收到),选择对应版本,可以与cuda相同的版本,或者比它小的版本。
切换到cudnn所在的目录下
sudo tar -zxvf cudnn-9.0-linux-x64-v4.0-prod.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*
cd /usr/local/cuda/lib64/
ls
sudo chmod +r libcudnn.so.7.0.5(具体的版本要自己查)
sudo rm -rf libcudnn.so libcudnn.so.7 #删除原有动态文件
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 #生成软衔接(注意这里要和自己下载的cudnn版本对应,可以在/usr/local/cuda/lib64下查看自己libcudnn的版本)
sudo ln -s libcudnn.so.7 libcudnn.so #生成软链接
sudo ldconfig -v

4,设置环境变量,
在/etc/profile中添加CUDA环境变量

sudo gedit /etc/profile
在打开的文件最后加入如下3句话
export PATH=/usr/local/cuda/bin:PATHexportLDLIBRARYPATH=/usr/local/cuda/lib64:

PATHexportLDL​IBRARYP​ATH=/usr/local/cuda/lib64:LD_LIBRARY_PATH
export PYTHONPATH=/home/用户名/caffe/python:$PYTHONPATH (具体注意用户名)

保存后, 使环境变量立即生效,
source /etc/profile
sudo gedit ~/.bashrc

在打开的文件最后加入如下3句话
export PATH=/usr/local/cuda-9.0/binKaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: {PATH:+:{PATH}}(具体要注意cuda的版本号)
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …LIBRARY_PATH:+:{LD_LIBRARY_PATH}}(具体要注意cuda的版本号)
export PYTHONPATH=/home/用户名/caffe/python:$PYTHONPATH
source ~/.bashrc
进入/usr/local/cuda/samples, 执行下面的命令来build samples,
cd /usr/local/cuda/samples
sudo make all -j16(如果电脑CPU比较低,则用-j16或者不加)

全部编译完成后, 进入
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery(具体要注意cuda的版本号)
sudo ./deviceQuery
如果出现显卡信息,结果为pass, 则驱动及显卡安装成功

CSDN目前搭建python3.5的兄dei好像还不是很多,也参考过,但是许多还是存在报错,于是就在谷歌上探索了一番,整理如下:

1,改变系统自带的Python2.7为系统自带的python 3.5,执行如下:
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.5 /usr/bin/python
在终端输入python :不出意外,现在的版本是3.5
接下里:安装依赖(前提:你已经下载好了pip3)这下面是有许多应该重复了,因为我参照谷歌的许多,依赖很重要,caffe编译报错几乎很大一部分与依赖有关,请确保每一个你都下载完毕

sudo apt-get update
sudo apt-get upgrade

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libopenblas-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

sudo pip3 install numpy
sudo apt-get install python3-skimage
sudo apt-get install build-essential cmake git pkg-config
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libhdf5-dev
sudo apt-get install protobuf-compiler libprotobuf-dev
sudo apt-get install libblas-dev libatlas-base-dev libopenblas-dev
sudo apt-get install libleveldb-dev
sudo apt-get install libsnappy-dev
sudo pip3 install google protocol #python3.5版本的安装

2,下载caffe
sudo git clone https://github.com/weiliu89/caffe.git
sudo cd caffe
sudo git checkout ssd

3,进入caffe/python文件,修改requirements.txt,因为编译ssd caffe要求该版本大于等于3.0
protobuf>=3.0.0

接着执行命令:(在caffe/python文件夹里面)
for req in $(cat requirements.txt); do sudo pip3 install --no-cache-dir $req; done

4,回到caffe根目录:
python3 -m site
我们需要USER_SITE中给出的路径。 例如 USER_SITE:’/ home / user / .local / lib / python3.5 / site-package’。 如果USER_SITE不存在,那么最后使用带有/ dist-packages的那个。

cp Makefile.config.example Makefile.config
sudo gedit Makefile.config
,按照下面修改:
USE_CUDNN := 1

CUDA_DIR := /usr/local/cuda

CUDA_ARCH :=-gencode arch=compute_30,code=sm_30
-gencode arch=compute_35,code=sm_35
-gencode arch=compute_50,code=sm_50
-gencode arch=compute_52,code=sm_52
-gencode arch=compute_60,code=sm_60
-gencode arch=compute_61,code=sm_61
-gencode arch=compute_61,code=compute_61 #(如果你用的是cuda9,否则自己查看官网修改)

#PYTHON_INCLUDE := /usr/include/python2.7
/usr/lib/python2.7/dist-packages/numpy/core/include #屏蔽2.7python

PYTHON_LIBRARIES := boost_python-py35 python3.5m #这个要自己查看find /usr -name libboost_python-py35
PYTHON_INCLUDE := /usr/include/python3.5m
/usr/local/lib/python3.5/dist-packages/numpy/core/include
#根据自己电脑情况,像我的是这样(如果user_site存在,加进去)

PYTHON_LIB := /usr/lib /usr/lib/x86_64-linux-gnu/

WITH_PYTHON_LAYER := 1

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/lib/x86_64-linux-gnu/

好了!编译吧!
sudo make all -j16
sudo make runtest -j16 #及其顺利,一个错都没有!
sudo make pycaffe -j16
sudo make pytest -j16 #报错!(升级scipy包,建议用pip3将caffe需要的包都升级一下,亲测,完全排错!)

这是我编译这么多天,唯一一次没有报错的过程,我真的很欣慰
如果你按照这个还是出现报错,希望你留言哟!互相改进~thanks

2018.3.10补充:
当中换了一次cuda,导致再次编译caffe出错:
如下oserror: libcudart.so.9.0: cannot open shared object file: no such file or directory
输入如下指令解决:

sudo sh -c “echo ‘/usr/local/cuda/lib64\n/usr/local/cuda/lib’ >> /etc/ld.so.conf.d/nvidia.conf”
sudo ldconfig

2018.3.11补仓:(关于要使用jupyternotebook的同学运行caffe模块时可能会提示):Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERROR
等等诸如此类的或者是(38 vs. 0)等等的错误,其实是权限问题,只要py文件在caffe 里能正常运行,且你的mnist测试能够正常的跑(在gpu环境下),那就是权限问题

找到这个问题的方法是:

python,import sys,sys.path,看输出的路径。

sudo python,import sys,sys.path,看输出的路径。发现这两个并不一样。python里的有caffe的路径,而sudo python没有。

解决办法:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值