[caffe]linux下安装caffe(无cuda)以及python接口
昨天在mac上折腾了一天都没有安装成功,晚上在mac上装了一个ParallelDesktop虚拟机,然后装了linux,十分钟就安装好了,我也是醉了=。=
主要过程稍微记录一下:
1.安装BLAS
sudo apt-get install libatlas-base-dev
2.安装依赖项
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler liblmdb-dev
3.安装glog
这个要翻墙,我放在我的百度云上了。
tar zxvf glog-0.3..tar.gz
cd glog-0.3.
./configure
make
sudo make install
4.安装gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=
make
sudo make install
这一步需要cmake,如果没有安装可以用 sudo apt-get install cmake 安装。
5.安装lmdb
git clone https://gitorious.org/mdb/mdb.git
cd mdb/libraries/liblmdb
make
sudo make install
如果没有安装git,也要用 sudo apt-get install git 来安装。
注:如果可以翻墙,只用下面一句就可以安装gflags,glog和lmdb了,省了3,4,5这三步。
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
6.下载Caffe
git clone git://github.com/BVLC/caffe.git
7.安装Caffe
cd caffe
cp Makefile.config.example Makefile.config
因为这里没有gpu,所以需要设置Makefile.config文件中的CPU_ONLY:= 1,把这句的注释去掉就可以了。
然后编译
make all
make test
make runtest
安装好以后我们就可以试着在mnist上跑一下lenet了。
1.首先获取mnist数据
cd caffe
./data/mnist/get_mnist.sh
2.然后创建lenet
./examples/mnist/create_mnist.sh
注意一定要在caffe的根目录下运行以下命令,否则会报“ build/examples/mnist/convert_mnist_data.bin: not found”的错误,参见这里。
3.训练cnn
没有gpu的话要记得把caffe/examples/mnist/lenet_solver.prototxt中的solver_mode设置成solver_mode: CPU。然后在根目录下执行:
./examples/mnist/train_lenet.sh

准确率可以达到0.9912
因为caffe的tutorial上有很大一部分是python的,所以后来又安装了一下python的接口。
1.首先安装python
2.安装pip
sudo apt-get install python-pip python-dev build-essential
3.运行以下代码安装必要的依赖项:
sudo pip install -r ./python/requirements.txt
4.这里我运行了make clean以及其他编译的caffe的命令,重新编译了一次caffe,但我不确定是不是必须的。
5.在caffe的根目录下运行:
make pycaffe
这里遇到了一个问题:
virtual memory exhausted: Cannot allocate memory
make: *** [python/caffe/_caffe.so] Error
按照这里的方法增加linux虚拟机的内存就可以解决了。
6.把caffe/python的路径加到python路径中:
运行python进入python shell,然后运行下列命令:
import sys
sys.path.append("path/to/caffe/python/")
exit()
7. 这时候再次进入python shell,运行import caffe就没有报错了。
参考
[1]http://blog.csdn.net/fengbingchun/article/details/45535741
[2]http://caffe.berkeleyvision.org/install_apt.html
[caffe]linux下安装caffe(无cuda)以及python接口的更多相关文章
- Caffe + Ubuntu 14.04 64bit + 无CUDA(linux下安装caffe(无cuda)以及python接口)
安装Caffe指导书 环境: Linux 64位 显卡为Intel + AMD,非英伟达显卡 无GPU 一. 安装准备工作 1. 以管理员身份登录 在左上角点击图标,搜索terminal(即终端),以 ...
- 来杯Caffe——在ubuntu下安装Caffe框架并测试
Caffe是一种深度学习框架...blablabla...... Caffe要在ubuntu下安装 1. 安装依赖 sudo apt-get install libatlas-base-dev sud ...
- Linux下安装3.0以上的python
Linux下自带的python2.7是不建议删除的,很多系统软件依赖python2.7,但是现在我们学习python一般需要python3.0,下面介绍安装python3.0. 1.进入python官 ...
- [Android Studio 权威教程]Windows下安装Android Studio
从AS 0.5版本号開始使用.也是AS的推行者,在ApkBus公布的第一篇Android Studio Perview 2 获得了50K的浏览,1800多条回复下载. 在我的[Android Stud ...
- [转]Caffe在Linux下的安装,编译,实验
Caffe在Linux下的安装,编译,实验 原文地址:http://www.cnblogs.com/evansyang/p/6150118.html 第一部分:Caffe 简介 caffe是有伯克利 ...
- Linux下调试caffe
参考博客:https://blog.csdn.net/xiaoyezi_1834/article/details/50724875 使用Anjuta 我使用的是ubuntu18.04,安装命令: su ...
- Linux 下安装mysql 5.7
Linux 下安装mysql 5.7 本人首次安装时按照菜鸟教程的步骤一步一步来的,结果意外的是 装成5.6了,而且各种无厘头的问题,例如无法启动... 本文参照 大佬:‘这个名字想了很久~’ 的&l ...
- Linux下安装Redis以及遇到的问题
参考链接:https://www.cnblogs.com/zdd-java/p/10288734.html https://www.cnblogs.com/uncleyong/p/9882843.ht ...
- Linux下安装JDK 1.8你必须知道的糟心事
来源:Atstudy网校 1.简介 在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还的一个一个的摸索尝试,而且网上大多数都是一些Or ...
随机推荐
- Compound Words
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=91209#problem/C 题意: 有一堆按照字典序排好的字符串,问你有多 ...
- orcale 动态执行语句
create or replace function fn_test2(tablename in varchar2) return number is rtn number; begin --通用的获 ...
- iPhone6的CSS3媒体查询
@media only screen and (min-device-width: 375px) and (max-device-width: 667px) and (orientation : po ...
- Vim 常见操作
1.复制所有内容 按照此顺序敲即可:gg(光标定位到文件头) V(选中该行) G(选中该行开始到最后一行结尾) y(复制选中内容) 2.粘贴所有内容 正常模式下,敲p即可,如果遇到粘贴内容不全,需要 ...
- wxpython更新
.configure时候检查不到gtk+ 使用 apt-get install gnome-core-devel
- c#前3章总结
01.net和c#的区别 大概在2000年,微软推出了一种革命性的产品--.NET(战略) 目标:任何人,在任何地方,使用任何终端设备,都可以访问微软提供的服务. .net Framework:要想让 ...
- SPOJ 10628 Count on a tree(Tarjan离线LCA+主席树求树上第K小)
COT - Count on a tree #tree You are given a tree with N nodes.The tree nodes are numbered from 1 to ...
- java跳出外部循环
java跳出外部循环两种方法 //用flag标识 boolean flag = true; for(int i=0;i<10&&flag;i++){ for(int j=0;j& ...
- 实现loading动画效果
下面我就来罗列三种实现loading动画效果的方法. 方法一:使用UIImageView自带的方法来实现,这也是我推荐的实现方法. NSMutableArray *array = [[NSMutabl ...
- React学习一
一.运行起来react 1.引入react库 引入对应的js即可,第三方cdn引入 <script src="https://cdnjs.cloudflare.com/ajax/lib ...