python caffe

1 安装所需要的依赖包

1.1  install protobufleveldb, snappy, opencv, hdf5, protobuf compiler and boost:

    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

1.2 install dependencies, the commands below install gflags, glogs ,lmdb and atlas

    sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

    sudo apt-get install libatlas-base-dev


2 配置python

   先执行命令:sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gulags Cython ipython

执行完命令后,可以检查一下,安装是否成功。输入python回车后,进入python shell模式,输入import numpy(其它包依此类推)检查numpy是否安装正常,不报错即可继续。

    执行python代码时,出现“File "numpy/coretup.py", line 269, in check_types

                                             "Cannot compile 'Python.h'. Perhaps you need to "
                                             SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev|python-devel.”即找不到Python.h文件,需要安装numpy所需的依赖(包括python.h(在python-devel中)):apt-get build-dep python-numpy


3 安装Caffe

3.1 下载Caffe

    Caffe下载地址:https://github.com/BVLC/caffe/,解压后,进入其根目录,Caffe给定了一个样例配置文件:Makefile.config.example,我们需要将复制为Makefile.config文件,通过命令:cp Makefile.config.example Makefile.config
因为我们只用CPU,因此需要将Makefile.config文件中“# CPU_ONLY := 1”,前面的#号去掉即可。


3.2 编译Caffe

make all

make pycaffe

make distribute


3.3 修改环境路径

在~/.bashrc中添加内容如下:

#caffe

export PYTHONPATH=$PYTHONPATH:/usr/caffe/python

export PYTHONPATH=$PYTHONPATH:/usr/caffe/python/caffe


3.4 测试

Ceshi.py:

import caffe

import sys

sys.path.append("/home/zk/usr/caffe/python")#python接口路径

编译Ceshi.py通过,说明大功告成,可以开始DP之旅了。


make all
CXX/LD -o .build_release/tools/convert_imageset.bin
.build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)'.build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/convert_imageset.bin] Error

Added LIBRARIES += glog gflags protobuf leveldb snappy \lmdb boost_system hdf5_hl hdf5 m \opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs to Makefile.config

I used make clean instead of rm -rf ./build

Then did make all and everything worked fine.



在命令行输入python;再输入import caffe时,可能会报以下错误:

can not find module skimage.io


此时只要按照以下命令操作即可:
$ sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython

$ sudo apt-get update


在caffe-master目录下:
$ make pycaffe


然后在命令行输入python;再输入import caffe就可以成功啦。

首先提示没有google.protobuf模块,这个好解决,只要使用sys.path.append(路径)命令把   protobuf/python  路径添加进来就可。以前这样做就可以了,但是昨天发生了另外一个错误  Can't import name symbol_database  经分析是没有symbol_database模块。这就奇怪了,原来是好的,怎么现在就不行了。

经过一番折腾,问题终于找到了。首先定位错误文件caffe_pb2.py,我比较了以前版本的caffe_pb2.py和新生成的caffe_pb2.py,发现新的caffe_pb2.py发现多了一行

  1. from google.protobuf import symbol_database as _symbol_database
原来错误在这里。但是问题由来了,为什么新的caffe_pb2.py会多出这么一行呢?原来是caffe更新了它的protobuf(我没有看官网,不知道他告诉用户没),去github下载最新的protobuf,重新编译即可。

最新protobuf:https://github.com/google/protobuf

cd 到protobuf/python 文件夹下,依次执行,下面三个命令:

  1. python setup.py build  
  2. python setup.py test  
  3. pyton setup.py install

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值