faster rcnn +GPU+配置+训练
来源:互联网 发布:求关键路径的算法步骤 编辑:程序博客网 时间:2024/05/17 22:37
1
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git2 .假如Faster R-CNN 路径
FRCN_ROOT
3 Build the Cython modules
cd $FRCN_ROOT/libmake
出现错误
yida@yida-X555LJ:~/py-faster-rcnn/lib$ makepython setup.py build_ext --inplaceTraceback (most recent call last): File "setup.py", line 10, in <module> from setuptools import setupImportError: No module named setuptoolsmake: *** [all] 错误 1
解决:
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gztar zxvf setuptools-0.6c11.tar.gzcd setuptools-0.6c11python setup.py buildsudo python setup.py install
错误:
ImportError: No module named Cython.Distutils
解决:
sudo apt install python-pippip install cython错误
python setup.py build_ext --inplaceTraceback (most recent call last): File "setup.py", line 58, in <module> CUDA = locate_cuda() File "setup.py", line 55, in locate_cuda raise EnvironmentError('The CUDA %s path could not be located in %s' % (k, v))EnvironmentError: The CUDA lib64 path could not be located in /usr/lib64Makefile:2: recipe for target 'all' failedmake: *** [all] Error 1解决:
gedit 打开 setup.py
cudaconfig = {'home':home, 'nvcc':nvcc, 'include': pjoin(home, 'include'), 'lib64': pjoin(home, 'lib64')}把上面的最后一个lib64改为lib即可
cudaconfig = {'home':home, 'nvcc':nvcc, 'include': pjoin(home, 'include'), 'lib64': pjoin(home, 'lib')}
错误
x86_64-linux-gnu-gcc: fatal error: no input files compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed with exit status 4
解决:
sudo apt-get install build-essential autoconf libtool pkg-config python-opengl python-imaging python-pyrex python-pyside.qtopengl idle-python2.7 qt4-dev-tools qt4-designer libqtgui4 libqtcore4 libqt4-xml libqt4-test libqt4-script libqt4-network libqt4-dbus python-qt4 python-qt4-gl libgle3 python-devsudo easy_install greenletsudo easy_install gevent
make
编译通过
cd $FRCN_ROOT/caffe-fast-rcnn cp Makefile.config.example Makefile.config make -j8 && make pycaffe
错误:
.build_release/src/caffe/proto/caffe.pb.h:17:2: error: #error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is ^.build_release/src/caffe/proto/caffe.pb.h:18:2: error: #error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please ^.build_release/src/caffe/proto/caffe.pb.h:19:2: error: #error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc. ^
error: no matching function for call to ‘google::protobuf::internal::ArenaStringPtr::GetNoArena(const string*) const’ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); ^In file included from .build_release/src/caffe/proto/caffe.pb.h:23:0, from .build_release/src/caffe/proto/caffe.pb.cc:5:/usr/include/google/protobuf/arenastring.h:215:31: note: candidate: const string& google::protobuf::internal::ArenaStringPtr::GetNoArena() const inline const ::std::string& GetNoArena() const { return *ptr_; } ^/usr/include/google/protobuf/arenastring.h:215:31: note: candidate expects 0 arguments, 1 providedIn file included from .build_release/src/caffe/proto/caffe.pb.cc:5:0:.build_release/src/caffe/proto/caffe.pb.h: In member function ‘const string& caffe::LayerParameter::type() const’:
解决:
protobuf版本太老
$ sudo apt-get clean$ sudo apt-get autoclean$ sudo apt-get autoremove$ sudo apt-get remove --purge proto\tab 注:按tab键,补齐:protobuf-compiler$ sudo dpkg -P protobuf-compiler sudo apt-get install libprotobuf-dev protobuf-compiler$wget https://github.com/google/protobuf/archive/v3.0.0.zip$unzip v3.0.0.zip$cd protobuf-3.0.0
下载自github的代码需要首先执行 $ ./autogen.sh 生成configure文件但是
./autogen.sh文件要在google下载,实现不了,所以手动下载gmoke-1.7.0.zip
,http://download.csdn.net/download/mister_exia/7608937 放在文件夹内 并把
./autogen.sh文件的下面几行注释掉
# Check that gmock is present. Usually it is already there since the# directory is set up as an SVN external.#if test ! -e gmock; then# echo "Google Mock not present. Fetching gmock-1.7.0 from the web..."# curl $curlopts -O https://googlemock.googlecode.com/files/gmock-1.7.0.zip# unzip -q gmock-1.7.0.zip# rm gmock-1.7.0.zip# mv gmock-1.7.0 gmock#fi执行:
unzip -q gmock-1.7.0.zip rm gmock-1.7.0.zip mv gmock-1.7.0 gmock./autogen.sh ./configure
$ make$ make check$ sudo make install
错误
In file included from ./include/caffe/util/device_alternate.hpp:40:0, from ./include/caffe/common.hpp:19, from src/caffe/common.cpp:7: ./include/caffe/util/cudnn.hpp: In function ‘void caffe::cudnn::createPoolingDesc(cudnnPoolingStruct**, caffe::PoolingParameter_PoolMethod, cudnnPoolingMode_t*, int, int, int, int, int, int)’: ./include/caffe/util/cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t cudnnSetPooling2dDescriptor(cudnnPoolingDescriptor_t, cudnnPoolingMode_t, cudnnNanPropagation_t, int, int, int, int, int, int)’ pad_h, pad_w, stride_h, stride_w)); ^ ./include/caffe/util/cudnn.hpp:15:28: note: in definition of macro ‘CUDNN_CHECK’ cudnnStatus_t status = condition; \ ^ In file included from ./include/caffe/util/cudnn.hpp:5:0, from ./include/caffe/util/device_alternate.hpp:40, from ./include/caffe/common.hpp:19, from src/caffe/common.cpp:7: /usr/local/cuda-7.5//include/cudnn.h:803:27: note: declared here cudnnStatus_t CUDNNWINAPI cudnnSetPooling2dDescriptor( ^ make: *** [.build_release/src/caffe/common.o] Error 1
这是因为当前版本的caffe的cudnn实现与系统所安装的cudnn的版本不一致引起的。
解决办法:
1.将./include/caffe/util/cudnn.hpp 换成最新版的caffe里的cudnn的实现,即相应的cudnn.hpp.
2.将./src/caffe/layer里的,所有以cudnn开头的文件,例如cudnn_lrn_layer.cu,cudnn_pooling_layer.cpp,cudnn_sigmoid_layer.cu。
都替换成最新版的caffe里的相应的同名文件。rbgirshick的py-faster-rcnn实现,因为其cudnn实现为旧版本的实现,所有出现了以上问题.
又出现错误:
src/caffe/layers/cudnn_relu_layer.cpp: In member function ‘virtual void caffe::CuDNNReLULayer<Dtype>::LayerSetUp(const std::vector<caffe::Blob<Dtype>*>&, const std::vector<caffe::Blob<Dtype>*>&)’:src/caffe/layers/cudnn_relu_layer.cpp:16:45: error: ‘activ_desc_’ was not declared in this scope cudnn::createActivationDescriptor<Dtype>(&activ_desc_, CUDNN_ACTIVATION_RELU); ^make: *** [.build_release/src/caffe/layers/cudnn_relu_layer.o] 错误 1<p>
3.将./include/caffe/layers的,所有以cudnn开头的文件,例如cudnn_conv_layer.hpp,cudnn_lcn_laye.hpp</p> 都替换成最新版的caffe里的相应的同名文件错误训练voc2007数据集:下载数据集wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tarwget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tarwget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
解压VOCdevkit
文件中
tar xvf VOCtrainval_06-Nov-2007.tartar xvf VOCtest_06-Nov-2007.tartar xvf VOCdevkit_08-Jun-2007.tar之后可以看到$VOCdevkit/ # development kit$VOCdevkit/VOCcode/ # VOC utility code$VOCdevkit/VOC2007 # image sets, annotations, etc.
建立软连接
cd $FRCN_ROOT/data //FRCN_ROOT为fasterrcnn所在目录ln -s $VOCdevkit VOCdevkit2007cd $FRCN_ROOT./data/scripts/fetch_imagenet_models.shcd $FRCN_ROOT./experiments/scripts/faster_rcnn_alt_opt.sh [GPU_ID] [NET] [--set ...]
我的是
cd $FRCN_ROOT./experiments/scripts/faster_rcnn_alt_opt.sh 0 ZF pascal_voc
在py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_end2end文件夹的solver里改存储路径
snapshot_prefix: "output/faster_rcnn_end2end/voc_2007_trainval/zf_faster_rcnn"
制作自己的数据集
http://blog.csdn.net/sinat_30071459/article/details/50723212点击打开链接
训练自己的数据集
http://blog.csdn.net/sinat_30071459/article/details/50546891点击打开链接
1 0
- faster rcnn +GPU+配置+训练
- Faster-RCNN训练问题解决:GPU内存
- faster-rcnn配置和训练小结
- faster rcnn训练
- faster-rcnn训练成功
- 训练FASTER-RCNN趣谈
- faster rcnn 训练
- faster rcnn训练
- 训练py-faster-rcnn
- Faster-RCNN训练问题解决
- Faster-RCNN训练修改
- Faster-RCNN训练问题解决
- Faster-RCNN训练结果
- Faster-RCNN训练问题解决
- Faster RCNN训练成功
- ubuntu14.04 faster-rcnn GPU环境配置(1)
- ubuntu14.04 faster-rcnn GPU环境配置(2)
- py-faster-rcnn+cpu配置并训练自己的数据
- groovy : poi 读取 Excel xlsx
- Android测试环境搭建
- java基础6_面向对象
- 第十一周 项目一 - 二叉树的算法验证(4)哈夫曼树
- 数据库连接池使用过程问题总结(实现连接并操作数据库最简单的方法)
- faster rcnn +GPU+配置+训练
- mysql 错误码: 1267
- 最大子串搜和索算法
- 页面内容不足以铺满屏幕高度时,footer居底显示
- 极验验证码的破解-开篇
- 浅谈sql中的in与not in,exists与not exists的区别
- Android RTMP直播(续二)
- 调用手机闪光灯(项目遇到才写的)
- 数字0与字母o