学习深度学习已经很久了,但一直没有自己动手安装过caffe,因为工作需要,需要在linux系统中安装caffe,因此,在这里对安装过程进行记录。

caffe配置起来比tensorflow更麻烦一些,我主要是根据官网上的安装说明进行安装的,也参考了Youtube上的教程。我是在虚拟机中的Ubuntu18.4系统中进行安装的,安装的是CPU版本的caffe。

caffe官网上可以找到Ubuntu系统中caffe的安装说明因为我的Ubuntu版本是>=17.4的。

安装caffe前,先按照官网上的说明,把需要的环境安装好。如果需要安装GPU版本的caffe,请先把cuda安装好,如果需要python接口,也先把python环境安装好。安装python环境时,建议直接安装Anaconda,因为它包含了一些caffe需要的科学计算库。

  1. 因为我要安装CPU版本的caffe,所以,执行以下两条命令安装caffe预编译包和caffe的依赖

    • sudo apt install caffe-cpu
    • sudo apt build-dep caffe-cpu
  2. 然后编译caffe
    • 编译caffe可以通过make进行编译,也可以通过Cmake进行编译。我是通过make进行编译的。
    • 通过git clone https://github.com/BVLC/caffe.git命令下载caffe到本地,进入caffe目录,执行
    • cp Makefile.config.example Makefile.config
    • 然后修改Makefile.config,Makefile.config中都有注释,所以可以根据自己的需要进行修改。我安装的python版本是3.7的,下面是我自己的修改(仅供参考):
    • CPU_ONLY := 1
    • OPENCV_VERSION := 3
    • ANACONDA_HOME := $(HOME)/anaconda3
    • PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
    • $(ANACONDA_HOME)/include/python3.7m \
    • $(ANACONDA_HOME)/lib/python3.7/site-packages/numpy/core/include
    • PYTHON_LIBRARIES := boost_python3 python3.7m\
    • PYTHON_LIB := $(ANACONDA_HOME)/lib
    • WITH_PYTHON_LAYER := 1
    • 修改之后,一次执行以下三条命令:
    • make all
    • make test
    • make runtest
    • 如果make all执行后出现问题,解决之后重新make all之前需要先执行make clean清除之前编译的可执行文件及配置文件。
  3. 完成1和2后,caffe已经成功安装了。接下来安装python接口,执行以下命令:
    • make pycaffe
    • make pytest
    • 设置python的环境变量,在~/.bashrc中添加export PYTHON_PATH=/home/用户名/caffe/python:$PYTHON_PATH
    • 配置好python接口后,就可以在python中成功import caffe了。

通过上面的3步就可以成功安装好caffe了,在安装过程中可能会碰到一些问题,每个人碰到的问题可能也不太一样,但碰到的问题基本都能搜到解决方案,下面是我碰到的一些问题和解决方案:

  1. error1: /usr/bin/ld: cannot find -latlas
    solution: sudo apt-get install libatlas-base-dev
  2. error2: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory
    solution: sudo apt-get install libpython3.7-dev
  3. error3: libhdf5_hl.so.100: cannot open shared object file: No such file or directory
    solution: 通过find命令可以查到在anaconda3/lib目录下有libhdf5_hl.so.100文件,因此在~/.bashrc中添加export LD_LIBRARY_PATH=/home/用户名/anaconda3/lib:$LD_LIBRARY_PATH
  4. error4: No module named google
    solution: conda install protobuf

在Linux系统中安装caffe的更多相关文章

  1. 在linux系统中安装VSCode(Visual Studio Code)

    在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网  ...

  2. 在 Linux 系统中安装Load Generator ,并在windows 调用方法

    在 Linux 系统中安装Load Generator ,并在windows 调用 由于公司需要测试系统的最大用户承受能力,所以需要学习使用loadrunner.在安装的时候碰到了不少问题,所以写下此 ...

  3. 详解在Linux系统中安装Tomcat

    本文以在CentOS 7.6中安装Tomcat8.5为例进行安装,其他系统和版本都是大同小异的. 安装JDK 安装Tomcat之前,需要先安装JDK,可以参看之前的文章详解在Linux系统中安装JDK ...

  4. 【Docker】在Linux系统中安装Docker虚拟机、启动停止重启查看Docker命令

    安装Docker 文章目录 安装Docker Docker虚拟机架构 在Linux系统中安装Docker虚拟机 管理Docker虚拟机 参考资料 Docker虚拟机架构 Docker创建的所有虚拟实例 ...

  5. linux系统中安装MySQL

    linux系统中安装MySQL 检查原来linux系统中安装的版本 rpm -qa | grep mysql 将其卸载掉 以 mysql-libs-5.1.71-1.el6.x86_64 版本为例 r ...

  6. Linux系统中安装软件方法总结

    Linux系统中安装软件方法总结 [1]Linux系统中安装软件的几种方式 [2] Linux配置yum源(本地源和网络源) [3] SuSE下zypper源配置 [4] SUSE zypper 本地 ...

  7. 在Windows、Mac和 Linux系统中安装Python与 PyCharm

    “工欲善其事,必先利其器”,本文介绍 Python环境的安装和 Python的集成开发环境(IDE) PyCharn的安装.   一.Python安装( Windows.Mac和 Linux) 当前主 ...

  8. 在 Linux 系统中安装Load Generator ,并在windows 调用

    原文地址:http://www.blogjava.net/qileilove/archive/2012/03/14/371861.html 由于公司需要测试系统的最大用户承受能力,所以需要学习使用lo ...

  9. 详解在Linux系统中安装JDK

    本文以在CentOS 7.6中安装JDK8为例进行安装,其他系统和版本都是大同小异的. 下载 进入Oracle官方网站的下载页面. 首先,接受许可协议,如下图: 然后,根据Linux系统的位数选择要下 ...

随机推荐

  1. Mysql查询缓存Query_cache的功用

    MySQL的查询缓存并非缓存执行计划,而是查询及其结果集,这就意味着只有相同的查询操作才能命中缓存,因此MySQL的查询缓存命中率很低,另一方面,对于大结果集的查询,其查询结果可以从cache中直接读 ...

  2. css常见效果

    1.ul li横排 /* ul li以横排显示 */ /* 所有class为menu的div中的ul样式 */ div.menu ul { list-style:none; /* 去掉ul前面的符号 ...

  3. sql点滴44—mysql忘记root密码

    1. 首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,使用命令: net stop mysql 打开第一个cmd1窗口,切换到mysql的bin目录,运行命令: mysq ...

  4. 【剑指offer】数值的整数次方

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/mmc_maodun/article/details/25506085 转载请注明出处:http:// ...

  5. 计数dp

    计数dp 计数类的$dp$没做过几个,所以之前都放到"思维"标签下了,后来发现原来这属于一类问题啊...搬过来了. 管道取珠:https://www.lydsy.com/Judge ...

  6. BZOJ5018:[SNOI2017]英雄联盟(背包DP)

    Description 正在上大学的小皮球热爱英雄联盟这款游戏,而且打的很菜,被网友们戏称为「小学生」.现在,小皮球终于受不了网友们的嘲讽,决定变强了,他变强的方法就是:买皮肤! 小皮球只会玩N个英雄 ...

  7. Spring的InitializingBean与DisposableBean方法

    在bean初始化的时候,将所有显示提供的属性设置完毕后调用这个方法 org.springframework.beans.factory.InitializingBean#afterProperties ...

  8. 【转】Tomcat连接器:Coyote框架

    不论Tomcat的容器设计得如何精妙,本质上Tomcat就是个http服务器,需要从socket中获得HTTP数据流:另一方面,容器只能处理封装好的org.apache.coyote.Request ...

  9. day2-作业及答案

    作业:第一组: 1.接收用户输入一个年份,判断是否是闰年(判断闰年的方法是该年能被4整除并且不能被100整除,或者是可以被400整除) 2.接收用户输入一组整数,输入负数时结束输入,输出这组数字的和: ...

  10. 编程使用缓冲流读取试题文件,test6_5.txt 内容如下所示。 每次显示试题文件中的一道题目,读取到字符“*”时暂停读取, 等待用户从键盘输入答案。用户做完全部题目后,程序给出用户的得分。

    test6_5.txt内容如下: (1)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做( ). A.封装象 B.继承 C.抽象 D.多态 ******************** ...