在 python3.5 下使用 Caffe Using Caffe with Python3.5
2016-06-29 16:47
465 查看
一、前言
本文介绍如何在 python3.5下使用
caffe的
python接口。之所以要强调
python3.5是因为:
1)
python3.5目前是
python3的最新版;
2)安装方法没官网介绍那么简单,里面暗桩很多。一不小心就遇到不给任何错误提示的情况下程序崩溃。而且
python3.5的安装方法要比低版本的
python3.3/3.4麻烦。
尽管如此,作为版本控我还是喜欢用新版。所以,经过了大量折腾之后总算找到了让
caffe兼容
python3.5的方法。
二、准备工作
我的主机环境是 Ubuntu 14.04+
Anaconda3-4.0。要让
caffe支持
python3.5需要下面几样依赖:
python3.5
protobuf 3.0 或以上版本。
libboost 1.55 或以上版本
三、正式配置
1)安装 Anaconda3
点击下载
Anaconda3-4.0.0。运行下面的命令进行安装
bash Anaconda3-4.0.0-Linux-x86_64.sh
注意:必须是 Anaconda3-4.0.0 以上版本,旧的 Anaconda3-2.5 版本不行!
2)手动编译和安装
protobuf3.0 以上版本。
必须是手动编译和安装,用
apt-get安装的是 2.0 版本,不行。
到
protobuf的 releases 页面去下载两个安装包:
protobuf-
cpp-3.0.0-beta-2.zip 或以上版本;
protobuf-
python-3.0.0-beta-2.zip 或以上版本。
注意,仔细看
protobuf的说明。安装
protobuf需要安装两样东西,
少一样都不行:
the protocol compiler;
the protobuf runtime
因此, 接下来首先安装
the protocol compiler和
protobuf cpp runtime。
解压第一个安装包 `protobuf-cpp-3.0.0-beta-2.zip`,并进入解压出来的目录 $ ./configure $ make $ make check $ sudo make install $ sudo ldconfig # refresh shared library cache.
这样
the protocol compiler和
protobuf cpp runtime就同时编译和安装好了。下面编译和安装
protobuf python runtime:
解压第二个安装包 `protobuf-python-3.0.0-beta-2.zip`,并进入解压出来的目录 $ cd python $ python setup.py build $ python setup.py test $ python setup.py install
这样
protobuf python runtime就编译和安装好了。注意
protobuf python runtime是作为
pip的包安装的。但是你可以从
conda里面看到它:
$ conda list | grep protobuf protobuf 3.0.0b2 <pip>
出现上面的结果就证明
protobuf3.0已经安装完成了。
3)安装
libboost
注意,这一步跟官方安装教程不一样,而且是必须的:
sudo apt-get install libboost1.55-all-dev
如果有 1.55 以上版本更好,没有就安装 1.55 版本。接下来做一个关键步骤:
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_python-py34.so.1.55.0 /usr/local/lib/libboost_python3.so
注意: 你安装完
libboost1.55-all-dev之后,会在系统中存在两个版本的
liboost_python:
libboost_python-
py33.so.1.55.0
libboost_python-
py34.so.1.55.0
这里必须选择
libboost_python-py34.so.1.55.0或
py34以上的版本。如果你选择了
py33版本。那么你将在得不到任何错误提示的情况下
python kernel直接崩溃。就跟
segmentation fault一样的令你抓狂。我折腾了一整天才发现是
py33的问题。。。。如下图所示:
当你在
python接口中运行任何带有输出功能的代码时,就会得到上面的错误,例如
solver.net.forward()。
而运行
solver.step(1)这种无输出功能的代码没事。
4)编辑
Makefile.conf文件,加入对
Anaconda3的支持
目前官方
caffe是不支持
Anaconda3的,必须自己改。所以我发了个
pull request #3869,增加了对
Anaconda3的支持。具体改动如下:
在 `Makefile.conf` 增加下面的代码, 详细请看 #3869 PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ $(ANACONDA_HOME)/include/python3.5m \ $(ANACONDA_HOME)/lib/python3.5/site-packages/numpy/core/include
5) 编译
caffe
make all -j 8 make pycaffe -j 8
四、运行
在终端下运行 jupyter notebook。下面就 enjoy 吧。
相关文章推荐
- 【原创分享】python获取乌云最新提交的漏洞,邮件发送
- python词云 wordcloud入门
- python 守护进程deamon
- python生产者与消费者问题
- python 去除空格和换行
- Python之路_Day7
- python 计算N天之后的日期
- Python快速排序
- Python 核心编程笔记_Chapter_4_Note_2 内建函数(built-in functions)
- python使用sqlalchemy连接pymysql数据库
- Python之基础篇(二)
- python 中date datetime time 与str的互转
- Python模块——struct
- python 多线程
- __init__(self),self,super,继承杂谈
- Python 核心编程笔记_Chapter_4_Note_1 对象属性
- python multiprocessing 多进程
- Python正则表达式中的 compile,search,group,groups 函数的简单说明
- python django下载大的csv文件
- python画图包seaborn和matplotlib中文字体显示(针对windows系统,,使用ipython notebook)