[新手友好]双系统Ubuntu18.04+python+cuda10.1+cudnn7.6.5装GPU版caffe和pyfasterrcnn
零、前言
首先感谢您来阅读这个教程
我一开始就是装双系统的,后来真是重装系统到怕了,每次删分区都怕手抖不小心把我windows给格了,所以才决定先做虚拟机的,也建议来看这个的先看我虚拟机装CPU版的那篇文章,熟悉了再来研究双系统的。
GPU版的区别在于需要跨过显卡驱动,cuda,cudnn三座大山,我自己踩了很多雷,网上关于这个的教程太多了,但是都不太系统,每个人的做法都不太一样,目前我所知道显卡驱动就有(老黄下载法,PPA安装法,系统驱动安装法,装cuda顺便安装法),cuda貌似只有一种,cudnn有(直接dpkg法,有下载三个deb法),这几种方法的排列组合我都试过,而且还有各种各样奇奇怪怪的版本对应问题,经典的教程版本太老,新的教程又不够详细。
不过谢天谢地,我终于搞定了。
本人用笔记本,配置是i5-700hq,16G内存,1050m。
另外这篇教程有点长,csdn的自动折叠有点烦,这里有一个自动展开的脚本,建议使用Tempermonkey暴力猴安装
一、安装双系统
图片比较多,我单独出来为另一篇文章
二、安装双系统后
第一次直接进ubuntu发现会卡死在登录界面,主要是因为坑爹的默认nouveau驱动,我们等下就会把它干掉
现在只能长按关机键重启,
- 这次就要精明一点了,不要直接进ubuntu,而是选择高级模式
- 因为我们刚才装机时连接了wifi,他自动更新了一下我们系统,所以有两个版本,我们选最新版本的recovery模式进入
- 之后选择resume进入即可
1. 获取root权限
创建一个root账户,因为在普通用户权限下执行命令通常都要加sudo,而在root账户下输入命令前面不用再加sudo,而且有些指令必须要root账户才能用
打开终端,输入下面指令,注意一下在ubuntu的终端里面粘贴是使用ctrlshiftv
sudo passwd root
输入想要设置的密码两次,就成功创建了root账户,
另外注意一下linux里面输入密码是不会显示的,但确实是有输入
想要提权为root用户的时候输入
su root
再输入密码,前面的用户名就会变成 root
注意一下root 用户的根目录就是在“计算机”看到的目录
普通用户的默认根目录是/home/用户名(也称家目录)
在cd的时候就会知道区别
2. 换源
刚安时候可能是全英的,需要下载中文语言包,不过我们先换源,下载就会更快一点
sudo gedit /etc/apt/sources.list
删除里面所有内容,然后添加
deb http://mirrors.aliyun/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun/ubuntu/ bionic-backports main restricted universe multiverse
更改完成后输入更新源,以后用apt装什么东西之前都要先运行这个更新一下列表
sudo apt update
刚装好建议也更新一下系统
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
三、卸载旧显卡驱动
1. 先清除可能存在的VIDIA残余势力
sudo apt-get remove nvidia*
sudo apt-get autoremove
2. 禁用nouveau显卡驱动
打开黑名单
sudo gedit /etc/modprobe.d/
在最后加入这些指令
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
opti nouveau modeset=0
完成更改
sudo update-initramfs -u
重启
sudo reboot
重启后就完成更改了,使用如下命令,如果没有输出就代表禁用成功
lsmod | grep nouveau
另外由于显卡驱动的问题解决了,打开ubuntu时也可以正常打开不用进入recovery模式了
四、依赖包安装(和cpu的一样)
1. 安装依赖包
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 libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install git cmake build-essential
请认真仔细逐条复制,这些库没有后面会爆各种奇怪错误
2. 配置环境变量
sudo gedit ~/.bashrc
在文件最后加入这两行内容
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
重启或输入下面使之生效
source ~/.bashrc
. 安装pip
既然是python,pip是肯定要装的,Ubuntu18自带python27和6两个版本,平时在命令行里面输入python和python2都是打开27,只有输入python才是打开6
另外想给6来pip安装东西,使用的也是pip install xxx,否则只是pip install的话就装给27了
sudo apt install python-pip
换不换源随意,我不换源速度也挺快的
4. 安装opencv_python
pip install opencv-python
5. 安装numpy1.15.0
首先卸载numpy,有人会问你,你不是安装嘛,咋卸载呢,你回头一看,发现opencv给拖家带口了一个numpy,但他会给你安一个1.17的,然而这个1.17好死不死,很多重要的函数修改了定义,导致很多人工智能相关库都出错,不信你试试导入opencv,保准报错
python
>>> import cv2
相当愚蠢的设定,如果之后安装什么库把numpy给升级成1.17,我们就用下面这条命令卸载
pip uninstall numpy
再重新指定版本安装,我们就要1.15的
pip install numpy==1.15.0
之后再import cv2就不会出错了
这里提一下cv2就是你装的python-opencv,我当时下载到版本是4.1.2
再提一嘴pkg-config opencv --modversion通过这个可以查到opencv版本,结果是.2.0,我当时也纳闷,后来发现是在装依赖包第一条的时候装上的,这个opencv和py-cv没啥关系。
五、PPA法安装VIDIA显卡驱动
有很多种方法可以装V驱动,比如说系统驱动设置法,老黄下载法,装cuda时顺路安装法,我这里选择比较保险的PPA法。
sudo add-apt-repository ppa:graphics-drivers/ppa #加入图形驱动的PPA源
sudo apt-get update #使源生效
ubuntu-drivers devices #显示驱动列表
这里可以看到我们当前最新的是440版本的驱动,
使用下面命令安装440驱动
sudo apt-get install nvidia-driver-440
装完显卡驱动也是需要重启的
重启完之后可以输入nvidia-smi,会弹出一个黑窗口,显示当前显卡占用
还有一个nvidia-settings,显示其他一些更复杂的设置
六、安装cuda10.1
1. 下载cuda10.1
下载地址:
https:///cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal
界面如下,选择选择.run版本
老黄直接给出了安装的指令,不过我建议不要用wget下载,直接复制wget后面的下载地址用浏览器下载都比他快到不知道哪去了
2. 安装依赖库
安装前先安装依赖库(否则之后编译时会提示没有libGL.so,libGLU.so,gl.h,glu.h等OpenGL相关的库)
sudo apt-get install freeglut-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
. 安装
cd 下载
sudo ./cuda_10.1.24_418.87.00_linux.run
- 弹出已存在相关驱动的提示,不用管,continue继续
- 弹出用户协议,只能accept
- 弹出选择安装内容的窗口,第一项Driver是显卡驱动,还是旧版418的,当然不装,按回车取消前面的X就代表不安装
- 然后Install,等待过程中可以上这里看看各种显卡的算力
安装完会有如下提示
提示各种库的路径,在/usr/local/下可以看到创建了cuda10.1的文件夹和cuda的快捷方式
并警告没有设置path和没有安装418版本的驱动。
驱动问题可以无视,现在来设置path
sudo gedit ~/.bashrc
在最后加入下面三行(注意CUDA_HOME版本号的修改)
export CUDA_HOME=/usr/local/cuda-10.1/
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
使生效
source ~/.bashrc
4. 测试是否成功
在家目录下自动出现了一个cuda的samples目录,里面是各种各样的样例程序
cd VIDIA_CUDA-10.1_Samples/5_Simulati/particles/
sudo make
./particles
会出现好鬼酷的东西,就代表安装成功了,样例程序里面的程序都很好玩,大家不妨试一试
装完cuda应该会出现这几样东西
打开第二个或者在终端输入nvvp,会报如下错误
原因是甲骨文修改了条例,只允许个人用户免费用java,所以现在英伟达的cuda不能自带Java。很好,现在又要我们自己另外安装java了
5. 安装java
jdk是给程序员开发java程序用的,jre是给普通用户使用java程序用的,安装jdk就自带jre了
我们装java8,比较经典
下载地址
https:///technetwork/java/javase/downloads/jdk8-downloads-21151.html
选择linux x64的tar.gz版本下载
我们将要把jdk放置到/usr/lib/jvm下,首先需要创建这个文件夹
cd /usr/lib
sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
cd 下载
sudo tar -zxvf gz -C /usr/lib/jvm/
sudo gedit /etc/profile
最后加入
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_21
export PATH=${JAVA_HOME}/bin:${PATH}
使生效
source /etc/profile
java-version和echo $JAVA_HOME看看是否有如下输出
6. 为cuda配置jre
根据刚才报错,我们把java的jre软连接到nvvp里(可以理解为是快捷方式)
sudo ln -s /usr/lib/jvm/jdk1.8.0_21/jre/ /usr/local/cuda-10.1/libnvvp/
这时候再nvvp就可以正常打开了
七、安装cudnn7.6.5
1. 下载cudnn7.6.5
下载地址:https:///rdp/cudnn-download
会叫你注册一个什么账号才能下载,乖乖注册
之后根据自己的cuda版本选择(刚好我着手写这篇博客的时候发现cuda10.2已经出了,不过问题不大,操作都是类似)
下载我标记的这三个文件,这种安装最方便,不用设置什么软连接之类的烦人东西
2. 安装
虽然文件名很像,但是安装顺序一定一定不能弄错,弄错很麻烦!!!!
sudo dpkg -i libcudnn7_7.6.5.2-1cuda10.1_amd64.deb
sudo dpkg -i libcudnn7-dev_7.6.5.2-1cuda10.1_amd64.deb
sudo dpkg -i libcudnn7-doc_7.6.5.2-1cuda10.1_amd64.deb
. 验证
cp -r /usr/src/cudnn_samples_v7/ $HOME
cd $HOME/cudnn_samples_v7/mnistCUD
make clean && make
./mnistCUD
出现test passed!说明安装成功,这里的样例程序就远没有cuda里面的好玩了
八、安装caffe
重头戏来了,你是否还记得被统治的恐惧,前面三步和cpu版都是一样的,我直接复制过来了,后面Makefile和CPU就有很大不同
1. 下载caffe源码
git clone https://github/BVLC/caffe.git
这条代码会把caffe文件夹下载到你当前cd的目录,建议自己复制一份到其他地方,然后就可以瞎搞了
2. 咋又要我装库
下面我就用caffe来表示caffe的主目录了,注意你先复制到一个自己喜欢的专门放库的文件夹(方便起见我是直接用家目录的),因为并不是像windows安装好就万事大吉的可以把安装包删掉的,这个是更类似“绿安装”的存在,如果你之后为了省空间等把这个文件给删了,你会发现你用不了caffe了
下面先安装库,全给装上准没错,比之后编译时这里没库那里没库到处出错到处要救火好
cd caffe/python
#安装该目录下所需的包
for req in $(cat ); do sudo pip install $req; done
. 创建py6的连接库
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_python-py6.so.1.65.1 /usr/local/lib/libboost_python.so
这句命令,前面的文件是源文件,后面的文件是快捷方式
需要自己看看自己源文件的版本然后修改
cd /usr/lib/x86_64-linux-gnu/
ls libboost_python*
然后看到蓝白的是快捷方式,白的是源文件
比如libboost_python-py6.so
就是libboost_python-py6.so.1.65.1的一个快捷方式
之后就修改,比如说原主的是libboost_python-py5.so.1.5x.x ,
要改为libboost_python-py6.so.1.65.1
改的时候一定要注意有空格断开前后两个文件
4. 最恐怖的修改
cd回去caffe的主目录
目录下的example只是caffe给的样例文件,不能拿来编译,只有才能编译
cd caffe/
cp .example
sudo gedit
请按照以下步骤仔细修改,活用ctrlF搜索
我们用的是GPU,所以要把CUD的注释去掉
将# USE_CUD := 1
改为USE_CUD := 1
caffe通常都是要用opencv的,不知道官方在想什么把这里默认注释上了,去掉
将# OPECV_VERSIO :=
改为OPECV_VERSIO :=
对于>9.0的cuda而言,算力20和21已经落后于时代,需要删掉这两行
-gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
结果如下
CUDA_ARCH := -gencode arch=compute_0,code=sm_0 \
-gencode arch=compute_5,code=sm_5 \
-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
把py2.7的两行注释掉,caffe默认是27,但我们的是6
# PYTHO_ICLUDE := /usr/include/python2.7 \
# /usr/lib/python2.7/dist-packages/numpy/core/include
去掉py.5的注释:
PYTHO_LIBRARIES := boost_python python.5m
PYTHO_ICLUDE := /usr/include/python.5m \
/usr/local/lib/python.5/dist-packages/numpy/core/include
然鹅我们的python版本是6,需要把上面三个.5的地方改成.6
这恰恰展现了caffe的更新迟缓 对旧版本的优良兼容性
我们用的是python运行caffe,当然要去掉# WITH_PYTHO_LAYER := 1的注释
将# WITH_PYTHO_LAYER := 1
改为WITH_PYTHO_LAYER := 1
在ICLUDE_DIRS和LIBRARY_DIRS后面分别加上/usr/include/hdf5/serial和/usr/lib/x86_64-linux-gnu/hdf5/serial,效果如下
ICLUDE_DIRS := $(PYTHO_ICLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHO_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
这里也给出我改好的,如果上面有什么不明白还是可以下载看一看,不过也要根据自己电脑实际版本做做修改
5. 激动人心的编译
下面是激动人心的编译环节
sudo make all -j4
sudo make test -j4
sudo make runtest -j4
中途我爆了点小warn,问题不大
这次是2207难,全部通过,做过cpu版的应该对这些OK比较麻木了,失去了当年的感动
6. 跑跑样例
这一篇文章对caffe的示例程序,解释了里面的语句,讲得很仔细,推荐去看看
注意的是下面的这些指令都是要在caffe主目录下运行,不能cd进去详细目录再运行
cd caffe
sudo sh data/mnist/get_mnist.sh #由于省空间,数据集是要自己另外下载的
sudo time sh examples/mnist/train_lenet.sh #将数据集转换成LMDB数据才可以被caffe识别
sudo gedit examples/mnist/lenet_solver.prototxt
这个是运行的配置文件
有两个地方值得注意
这里是最大迭代层数,按需要改,默认是10000
max_iter: 10000
这里是修改用cpu还是gpu运行,默认是gpu,我们不用改
将solver_mode: GPU
改为solver_mode: CPU
sudo time sh examples/mnist/train_lenet.sh
加入time参数可以查看运行的时间,我迭代10000层用1050跑大概需要45秒,神速
训练后,会在examples/mnist下生成四个文件,分别是迭代5000次和10000次的模型,如果要重跑,就把这四个删掉
lenet_iter_
lenet_iter_10000.solverstate
lenet_iter_
lenet_iter_5000.solverstate
cd caffe/examples/mnist
touch test_lenet.sh #生成空白文件
sudo gedit test_lenet.sh #编辑
加入如下内容
#!/usr/bin/env sh
./build/tools/caffe test -model examples/mnist/lenet_train_test.prototxt -weights examples/mnist/lenet_iter_ -iterati 100
运行测试
cd ~/caffe
sudo sh ./examples/mnist/test_lenet.sh
即可看到结果
九、安装py-faster-rcnn
GPU版本的FRC主要参考该文
这个和cpu的还是有好些不同,请仔细看
1. 下载py-faster-rcnn源码
git clone --recursive https://github/rbgirshick/py-faster-rcnn.git
下载后也是备一下份,下面就用py-faster-rcnn代表FRC的安装主目录
2. 将python2的语法转成python
有一个很有用的工具叫做2to,我当时不知道有这个工具,手动修改print语法感觉要疯掉了,这个一键就可以搞定
sudo apt install 2to
2to -f all -f idioms ~/py-faster-rcnn/ -w
. 编译lib文件夹
cd py-faster-rcnn/lib/
打开Makefile修改
gedit Makefile
把python改成python,代表用6来make,如果不改,就是用27来make,会报错的
all:
python setup.py build_ext --inplace
rm -rf build
编译
make
报点小warn,无伤大雅,看到最后他成功执行rm -rf build就成了
4. 编译FRC里面的caffe
路径是:py-faster-rcnn/caffe-fast-rcnn/
尤其注意此caffe非上面的caffe,FRC用的应该是旧版的caffe,当时我误以为FRC自带caffe了那上面的caffe就可以偷懒不用装了吧,结果发现import caffe之后是没有东西的
把刚才我们在caffe修改的复制到py-faster-rcnn/caffe-fast-rcnn/这个目录下面,所以说如果你刚才直接用一条命令装caffe,那你就少了一次锻炼的机会,现在要还回来了
第一处
(1)替换 py-faster-rcnn/caffe-fast-rcnn/include/caffe/util 里的 cudnn.hpp
为刚安装 caffe 对应位置caffe/include/caffe/util 的 cudnn.hpp
就一个文件,手工完成就可以
第二处
(2)替换 py-faster-rcnn/caffe-fast-rcnn/include/caffe/layers 里以 cudnn 开头的文件
为刚安装 caffe 对应位置caffe/include/caffe/layers 里以 cudnn 开头的文件
FRC的文件里面有8个cudnn开头的
而caffe的文件里面有9个cudnn开头的,复制完之后ls看到8个变成9个就代表成功了
# 删掉旧的
cd ~/py-faster-rcnn/caffe-fast-rcnn/include/caffe/layers
ls cudnn*
rm -r cudnn*
#迁移新的
cd ~/caffe/include/caffe/layers
ls cudnn*
cp cudnn* ~/py-faster-rcnn/caffe-fast-rcnn/include/caffe/layers/
第三处
()替换 py-faster-rcnn/caffe-fast-rcnn/src/caffe/layers 里以 cudnn 开头的文件
为刚安装 caffe 对应位置caffe/src/caffe/layers 里以 cudnn 开头的文件
FRC的文件里面有16个cudnn开头的
而caffe的文件里面有18个cudnn开头的,复制完之后ls看到16个变成18个就代表成功了
# 删掉旧的
~/py-faster-rcnn/caffe-fast-rcnn/src/caffe/layers
ls cudnn*
rm -r cudnn*
#迁移新的
cd ~/caffe/src/caffe/layers
ls cudnn*
cp cudnn* ~/py-faster-rcnn/caffe-fast-rcnn/src/caffe/layers
cd py-faster-rcnn/caffe-fast-rcnn
make -j2 && make pycaffe
其实j2, j4, 都可以,看心情,不过性能跟不上的话有时候编译太快虚拟机会卡死,小心驶得万年船
编译的时候出了点小warn,依然不影响大局
(1)numpy/arrayobject.h: 没有那个文件或目录
解决方法
sudo apt-get install python-numpy
5. 跑一下例程
cd py-faster-rcnn/data/scripts/
./fetch_faster_rcnn_models.sh
然后肯定会报错,因为这个要文明上网才能下得了
可以在这个百度云里面下载
下载tgz后解压,放到 py-faster-rcnn/data/目录下
复制和解压要看是否复制好了,ubuntu坑爹的地方是有时候会没有复制完全
里面是两个训练好的model文件,解压后大小应该是785.5MB
文件比较大,在等待下载的时候不妨先做下面的步骤
easydict和Matplotlib两个库不在requirement里面,我们还要自己装
pip install easydict
pip install Matplotlib
又要重装numpy,卸载时可以看到numpy又双叒叕被升级到了1.17
pip uninstall numpy
pip install numpy==1.15.0
三二一,发射
cd py-faster-rcnn/tools
python demo.py
6. 可能出现的错误
我自己就报这个错,我的1050m只有2G显存,但这个默认样例要求G起步
那我这种穷人要怎么跑呢?感谢这篇文章给出详细解答
https:///hongbin_xu/article/details/7610012
他提到,我们下载下来的有两个模型
VGG16是大型模型,而ZF模型则是较小的模型。
所以我们换成使用ZF模型进行测试。
因此可以输入下面指令,指定用zf网络模型来跑,
几乎是秒出结果,这就是GPU的力量啊
python demo.py --net zf
输入下面指令,指定用CPU来跑zf网络模型,就要差不多一分钟才能出结果了
python demo.py --cpu --net zf
之前是小猫,这次就用小狗吧哈哈哈哈哈哈
十、感谢
感谢所有写教程的前辈们,他们的文章我大多都看完了,我就列举一部分出来
PPA法装显驱参考:
https:///qq_40196164/article/details/8458627
安装cuda参考:
https:///qq_40196164/article/details/8458627
https:///qq_200967/article/details/8068954#CUDA_71
安装cudnn参考:
https:///qq_40196164/article/details/8458627
装pyfasterrcnn参考:
https:///u01102177/article/details/81298666
跑caffe样例mnist参考:
https:///yuanliang861/article/details/80190054
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
推荐阅读
留言与评论(共有 11 条评论) |
本站网友 互联网白皮书 | 6分钟前 发表 |
本人用笔记本,配置是i5-700hq,16G内存,1050m | |
本站网友 深圳信义假日名城 | 10分钟前 发表 |
= 第三步 对于>9.0的cuda而言,算力20和21已经落后于时代,需要删掉这两行 -gencode arch=compute_20 | |
本站网友 唐婷 | 29分钟前 发表 |
///rdp/cudnn-download 会叫你注册一个什么账号才能下载,乖乖注册 之后根据自己的cuda版本选择(刚好我着手写这篇博客的时候发现cuda10.2已经出了,不过问题不大,操作都是类似) 下载我标记的这三个文件,这种安装最方便,不用设置什么软连接之类的烦人东西 2. 安装 虽然文件名很像,但是安装顺序一定一定不能弄错,弄错很麻烦!!!! sudo dpkg -i libcudnn7_7.6.5.2-1cuda10.1_amd64.deb sudo dpkg -i libcudnn7-dev_7.6.5.2-1cuda10.1_amd64.deb sudo dpkg -i libcudnn7-doc_7.6.5.2-1cuda10.1_amd64.deb . 验证 cp -r /usr/src/cudnn_samples_v7/ $HOME cd $HOME/cudnn_samples_v7/mnistCUD make clean && make ./mnistCUD 出现test passed!说明安装成功,这里的样例程序就远没有cuda里面的好玩了 八 | |
本站网友 牙周炎的治疗 | 22分钟前 发表 |
python setup.py build_ext --inplace rm -rf build 编译 make 报点小warn,无伤大雅,看到最后他成功执行rm -rf build就成了 4. 编译FRC里面的caffe 路径是:py-faster-rcnn/caffe-fast-rcnn/ 尤其注意此caffe非上面的caffe,FRC用的应该是旧版的caffe,当时我误以为FRC自带caffe了那上面的caffe就可以偷懒不用装了吧,结果发现import caffe之后是没有东西的 第一步 似曾相识 把刚才我们在caffe修改的复制到py-faster-rcnn/caffe-fast-rcnn/这个目录下面,所以说如果你刚才直接用一条命令装caffe,那你就少了一次锻炼的机会,现在要还回来了 第二步 更新FRC里面的cudnn相关库 第一处 (1)替换 py-faster-rcnn/caffe-fast-rcnn/include/caffe/util 里的 cudnn.hpp 为刚安装 caffe 对应位置caffe/include/caffe/util 的 cudnn.hpp 就一个文件,手工完成就可以 第二处 (2)替换 py-faster-rcnn/caffe-fast-rcnn/include/caffe/layers 里以 cudnn 开头的文件 为刚安装 caffe 对应位置caffe/include/caffe/layers 里以 cudnn 开头的文件 FRC的文件里面有8个cudnn开头的 而caffe的文件里面有9个cudnn开头的,复制完之后ls看到8个变成9个就代表成功了 # 删掉旧的 cd ~/py-faster-rcnn/caffe-fast-rcnn/include/caffe/layers ls cudnn* rm -r cudnn* #迁移新的 cd ~/caffe/include/caffe/layers ls cudnn* cp cudnn* ~/py-faster-rcnn/caffe-fast-rcnn/include/caffe/layers/ 第三处 ()替换 py-faster-rcnn/caffe-fast-rcnn/src/caffe/layers 里以 cudnn 开头的文件 为刚安装 caffe 对应位置caffe/src/caffe/layers 里以 cudnn 开头的文件 FRC的文件里面有16个cudnn开头的 而caffe的文件里面有18个cudnn开头的,复制完之后ls看到16个变成18个就代表成功了 # 删掉旧的 ~/py-faster-rcnn/caffe-fast-rcnn/src/caffe/layers ls cudnn* rm -r cudnn* #迁移新的 cd ~/caffe/src/caffe/layers ls cudnn* cp cudnn* ~/py-faster-rcnn/caffe-fast-rcnn/src/caffe/layers 第三步 又是激动人心的编译环节 cd py-faster-rcnn/caffe-fast-rcnn make -j2 && make pycaffe 其实j2, j4, 都可以,看心情,不过性能跟不上的话有时候编译太快虚拟机会卡死,小心驶得万年船 编译的时候出了点小warn,依然不影响大局 可能会出现的错误 (1)numpy/arrayobject.h | |
本站网友 装修墙壁纸 | 10分钟前 发表 |
没有那个文件或目录 解决方法 sudo apt-get install python-numpy 5. 跑一下例程 (1)下载官方demo训练模型 cd py-faster-rcnn/data/scripts/ ./fetch_faster_rcnn_models.sh 然后肯定会报错,因为这个要文明上网才能下得了 可以在这个百度云里面下载 下载tgz后解压,放到 py-faster-rcnn/data/目录下 复制和解压要看是否复制好了,ubuntu坑爹的地方是有时候会没有复制完全 里面是两个训练好的model文件,解压后大小应该是785.5MB 文件比较大,在等待下载的时候不妨先做下面的步骤 (2)装一装必要的库 easydict和Matplotlib两个库不在requirement里面,我们还要自己装 pip install easydict pip install Matplotlib 又要重装numpy,卸载时可以看到numpy又双叒叕被升级到了1.17 pip uninstall numpy pip install numpy==1.15.0 ()终于到最后一步了 三二一,发射 cd py-faster-rcnn/tools python demo.py 6. 可能出现的错误 (1)显存不足卡死 我自己就报这个错,我的1050m只有2G显存,但这个默认样例要求G起步 那我这种穷人要怎么跑呢?感谢这篇文章给出详细解答 https | |
本站网友 图学网 | 13分钟前 发表 |
//mirrors.aliyun/ubuntu/ bionic-backports main restricted universe multiverse deb-src http | |
本站网友 印刷电路板 | 21分钟前 发表 |
//github/BVLC/caffe.git 这条代码会把caffe文件夹下载到你当前cd的目录,建议自己复制一份到其他地方,然后就可以瞎搞了 2. 咋又要我装库 下面我就用caffe来表示caffe的主目录了,注意你先复制到一个自己喜欢的专门放库的文件夹(方便起见我是直接用家目录的),因为并不是像windows安装好就万事大吉的可以把安装包删掉的,这个是更类似“绿安装”的存在,如果你之后为了省空间等把这个文件给删了,你会发现你用不了caffe了 下面先安装库,全给装上准没错,比之后编译时这里没库那里没库到处出错到处要救火好 cd caffe/python #安装该目录下所需的包 for req in $(cat ); do sudo pip install $req; done . 创建py6的连接库 sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_python-py6.so.1.65.1 /usr/local/lib/libboost_python.so 这句命令,前面的文件是源文件,后面的文件是快捷方式 需要自己看看自己源文件的版本然后修改 cd /usr/lib/x86_64-linux-gnu/ ls libboost_python* 然后看到蓝白的是快捷方式,白的是源文件 比如libboost_python-py6.so 就是libboost_python-py6.so.1.65.1的一个快捷方式 之后就修改,比如说原主的是libboost_python-py5.so.1.5x.x , 要改为libboost_python-py6.so.1.65.1 改的时候一定要注意有空格断开前后两个文件 4. 最恐怖的修改 cd回去caffe的主目录 目录下的example只是caffe给的样例文件,不能拿来编译,只有才能编译 cd caffe/ cp .example sudo gedit 请按照以下步骤仔细修改,活用ctrlF搜索 第一步 我们用的是GPU,所以要把CUD的注释去掉 将# USE_CUD | |
本站网友 北京梵音瑜伽 | 30分钟前 发表 |
sudo add-apt-repository ppa | |
本站网友 东升镇二手房 | 19分钟前 发表 |
//mirrors.aliyun/ubuntu/ bionic-security main restricted universe multiverse deb-src http | |
本站网友 问号小人 | 29分钟前 发表 |
= 1的注释 将# WITH_PYTHO_LAYER |