深度学习工具caffe详细安装指南

转载自 深度学习工具caffe详细安装指南


前言:

在一台系统环境较好的linux机器上可以很容易的安装caffe,但是如果系统本身很旧,又没有GPU的话,安装就太麻烦了,所有都得从头做起,本文档旨在尽可能覆盖安装所要采的坑。


步骤:

一、caffe是主要是C/C++和python编写的。首先,得需要将gcc,g++安装好,通过yum安装就可以。


二、cuda的安装,如果机器上配置了NVIDIA系列GPU,则需要安装该驱动,推荐安装该驱动至7.0版本,推荐同时安装cuDNN。安装可以参考http://blog.csdn.net/xuanyuansen/article/details/43152311,centos系统下类似。


三、caffe的layer开发以google的protobuf为格式,需要安装该依赖,推荐安装2.6.1版本(gcc版本推荐4.4.7),下载地址为https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz,按照README文件里的步骤安装即可。


四、python安装,caffe提供了python的接口,可以用python进行相关开发,而且可以在ipython-notebook里面画出网络结构,非常方便。为了使用这些功能,推荐在目标机器上编译安装python2.7.10,源码下载地址见python官网,为了多用户环境考虑,强烈建议安装目标用户自己的python,可以在自己用户的home下建立usr文件夹,解压源码后加如下配置命令:


./configure --enable-shared \

           --prefix=${HOME}/usr/local \

            LDFLAGS=“-Wl,—rpath=${HOME}/usr/local/lib”

make && make install


即需要python的lib文件可以被其他程序共享,rpath后面就是自已的路径。


安装好后需要配置目标用户下的bashrc文件,加入如下行:

PATH=/home/lianhua/usr/local/bin:$PATH

然后source bashrc文件,如果进入python版本正确则安装成功,否则检查路径重新编译。


python安装好后需要安装pip,在官网上下载get-pip.py执行即可,然后安装相应版本的protobuf,同时安装caffe的官方说明安装其他的依赖:

for req in $(cat requirements.txt); do pip install $req; done


五、安装openblas

从openblas官网下下载安装安装包,安装README文件安装就好,make&&make install,可能需要sudo权限。


六、yum依赖安装

参加官方文档http://caffe.berkeleyvision.org/install_yum.html,需要安装上述所有依赖,首先需要安装和系统相应的最新的repository文件,然后执行sudo yum install epel-release,更新站点从而安装最最新的依赖。


七、opencv安装

前置需要安装较新版本的cmake,去官网下载安装即可。

opencv安装有两种方式:

1、下载源码包安装,请参考:

http://www.javieriparraguirre.net/installing-opencv-debian/(依赖的安装,centos类似)

http://www.jianshu.com/p/a41da779f763(opencv安装)

2、利用自动脚本安装:

地址:https://github.com/jayrambhia/Install-OpenCV



八、caffe安装配置

到此处终于可以进入正题,进行caffe的安装,如果上述安装过程顺利的话,caffe的安装也就没有太大问题了。关键在于正确配置Makefile.config文件,需要修改如下配置至相应的路径(参照配置文件的注释,疑惑的地方google即可):

1、CUDA_DIR

2、BLAS := open,BLAS_INCLUDE :=,BLAS_LIB :

3、PYTHON_INCLUDE :=

注意此处需要添加python下numpy的路径

4、PYTHON_LIB :=

5、WITH_PYTHON_LAYER := 1

注意此处需要将python的hdf5安装路径添加到:INCLUDE_DIRS := $(PYTHON_INCLUDE)和LIBRARY_DIRS := $(PYTHON_LIB)


上述配置文件修改好后,回到caffe的根目录,执行make all -j4,注意此处进程不要过多,否则会出现诡异的错误;

make test -j4

make runtest -j4

至此caffe主程序编译完毕。

下面编译pycaffe,至执行

make pycaffe

make distribute

执行完后修改bashrc文件,添加

PYTHONPATH=${HOME}/caffe/distribute/python:$PYTHONPATH

LD_LIBRARY_PATH=${HOME}/caffe/build/lib:$LD_LIBRARY_PATH

使得python能够找到caffe的依赖。

进入python,import caffe,如果成功则说明一切ok,否则检查路径从头再来,甚至需要重新编译python。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring_02_AOP初级总结

1.AOP简介 是对OOP编程方式的一种补充。翻译过来为“面向切面编程”。 可以理解为一个拦截器框架,但是这个拦截器会非常武断,如果它拦截一个类,那么它就会拦截这个类中的所有方法。如对一个目标列的代理,增强了目标类的所有方法…

spring(11)使用对象-关系映射持久化数据

【0】README1)本文部分文字描述转自:“Spring In Action(中/英文版)”,旨在review “spring(11)使用对象-关系映射持久化数据” 的相关知识;【2】spring 与 java 持久化API1)intro:…

漫画:什么是数据仓库

转载自 玻璃猫 算法与数据结构一个故事 在很久很久以前,世界上生活着许多种族,有人类,有矮人,有精灵......他们有着不同的信仰,不同的文化,彼此相安无事。可是,有一个猥琐男却偏偏想要统治整个世…

SpringMVC_初级总结

1.SpringMVC的工作原理 浏览器发出一个http请求给服务器,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),服务器将请求转交给DispatcherServlet.DipatcherServlet接收到这个请求之后,根据请求的路径&#…

tomcat中配置jndi数据源以便spring获取

【0】README0)intro to jndi, plase visit intro to jndi;1)本文译自 Configuring Spring MVC JdbcTemplate with JNDI Data Source in Tomcat;2)本文旨在分析如何通过springmvc 获取 JNDI 数据源 以连接到…

Machine Learning:十大机器学习算法

转载自 Machine Learning:十大机器学习算法摘要: - 机器学习算法分类:监督学习、无监督学习、强化学习 - 基本的机器学习算法:线性回归、支持向量机(SVM)、最近邻居(KNN)、逻辑回归、决策树、k平均、随机森林、朴素贝叶斯、降维、梯度增强 机…

Java的值传递解析

值传递与引用传递 最近学基础的时候,老师讲了值传递和引用传递,这个问题一直不太明白,上网查了很多资料,按照自己的理解整理了一遍,发现之前不太明白的地方基本上想明白了,如有不正确的地方,欢…

spring(13)缓存数据

【0】README1)本文部分文字描述转自:“Spring In Action(中/英文版)”,旨在review “spring(13)缓存数据” 的相关知识;2)缓存:缓存可以存储经常会用到的信息,这样每次需…

漫画:什么是分布式事务

转载自 漫画:什么是分布式事务?————— 第二天 —————————————————假如没有分布式事务 在一系列微服务系统当中,假如不存在分布式事务,会发生什么呢?让我们以互联网中常用的交易业务为例子&#…

Spring4.2.6+SpringMVC4.2.6+MyBatis3.4.0 整合

【0】README0)本文旨在 review Spring4.2.6SpringMVC4.2.6MyBatis3.4.0 整合过程;1)项目整合所涉及的源代码,please visit https://github.com/pacosonTang/MyBatis/tree/master/spring4mvc_mybatis32)由于晚辈我还不…

ibatis(0)ibatis 与 mybatis 简述

【0】README:1)本文旨在给出 ibatis 与 mybatis 简述,简述内容转自 如下链接;【1】main contents1)apache offical declarationhttp://ibatis.apache.org/.apache ibatis is retired at the apache software foundation (2010/06/…

Java面试大纲

转载自 金三银四跳槽季,Java面试大纲跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽。切不可跟风,看到同事一个个都走了,自己也盲目的面试起来(期间也没有准备充分)&#x…

ibatis(1)ibatis的理念

【0】README1)本文部分内容转自 “ibatis in action”,旨在 review “ibatis的理念” 的相关知识;【1】结合所有优秀思想的混合型解决方案在现实世界中,混合型解决方案随处可见。将两个看上去相悖的思想在中间处巧妙结合&#xff…

究竟啥才是互联网架构“高并发”

转载自 究竟啥才是互联网架构“高并发”一、什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间…

ibatis(2)ibatis是什么

【0】README1)本文部分内容转自 “ibatis in action”,旨在 review “ibatis是什么” 的相关知识;2)intro to ibatis: ibatis 就是数据映射器,Martin Fowler在《企业应用架构模式》中,对 data m…

究竟啥才是互联网架构“高可用”

转载自 究竟啥才是互联网架构“高可用”一、什么是高可用 高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。 假设系统一直能够提供服务,我们说…

maven(3)maven3.3.9使用入门

【0】README1)maven 安装step1)检查 jdk 是否安装且 环境变量 JAVA_HOME 是否设置;step2)download maven: https://maven.apache.org/download.cgi?Preferredftp://mirror.reverse.net/pub/apache/step3)…

TCP接入层的负载均衡、高可用、扩展性架构

转载自 TCP接入层的负载均衡、高可用、扩展性架构 一、web-server的负载均衡 互联网架构中,web-server接入一般使用nginx来做反向代理,实施负载均衡。整个架构分三层: 上游调用层,一般是browser或者APP 中间反向代理层&#xff…

使用poi统计工作职责

1 创建一个新的sheet工作页 Sheet job workbook.createSheet("工作职责统计"); 2 查询工作职责问题选项列表&#xff0c;并设置第一行倒出时间 List<Syslistconfig> listconfigs syslistconfigDao.listConfig(29); //工作职责问题选项列表job.createRow(0)…

漫画:什么是字典序算法

转载自 漫画&#xff1a;什么是字典序算法&#xff1f;算法题目&#xff1a; 给定一个正整数&#xff0c;实现一个方法来求出离该整数最近的大于自身的“换位数”。 什么是换位数呢&#xff1f;就是把一个整数各个数位的数字进行全排列&#xff0c;从而得到新的整数。例如53241…