ubuntu16.04+opencv3+anaconda2+caffe 环境搭建(cpu版本)

网上的资源真的很多了,贴链接:

参考博客:点击打开链接

点击打开链接

点击打开链接

这篇写python接口的很详细:点击打开链接

解决把anaconda和caffe关联起来的问题:点击打开链接

解决import caffe 出现 ImportError:No module named _caff 的问题:点击打开链接

有这几个差不多够了,过程中报错了的话就百度找解决方法。安装的各种坑还是得亲自踩一遍的。。。

下面这个比较精髓,看requirements.txt,然后缺什么装什么。。。

有一条比较好的for循环命令解决这个步骤:

 

########@ubuntu:~$ for req in $(cat requirements.txt); do pip install $req; done 

注意这里用了conda(anaconda)安装哈,不是pip。

 

 

过程我简单整理一下吧:

1.首先安装一些必要的依赖项,按照官网上的那些一个个装:

 

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
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

 

2.我跳过了cuda,因为我就是个pc啊,没有gpu~

3.安装opencv3:先安装依赖,官方列出了:

 

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install libopencv-dev libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev 


再从官网(http://opencv.org/downloads.html)下载OpenCV,并将其解压到你要安装的位置。

安装先创建编译opencv的文件夹:

cd ~/opencv-3.1.0/
mkdir build
cd build

配置:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_GTK=ON -D WITH_GTK_2_X=ON -D CUDA_NVCC_FLAGS="-D_FORCE_INLINES" ..

编译:

sudo make -j8

安装:

sudo make install -j8

4.安装Anaconda:

bash Anaconda2-4.3.0-Linux-x86_64.sh     然后一直执行就好了
在命令行输入python,会调用ubuntu自带的python,所以执行完之后需要替换python
sudo gedit ~/.bashrc
加入anaconda的安装目录是/home/xxx/anaconda2,那么在文件的最后加上
alias python=’/home/xxx/anaconda2/bin/python‘
然后source .bashrc
再在命令行敲入python就变成了anaconda的python了~

5.最后安装caffe:

sudo apt-get install git     安装git,用来下载caffe的
git clone git://github.com/BVLC/caffe.git     下载caffe
cp Makefile.config.example Makefile.config     不执行cp的话,后面会报错的,我试了哈~
sudo gedit Makefile.config       编辑Makefile.config文件,进行一些你我们自己需要的更改
再安装一系列依赖库:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
 
编译安装sudo make all -j8
sudo make pycaffe    这个坑,没这句import caffe 会出现不存在caffe_的错误 
sudo make test -j8
sudo make runtest -j8 
 
makefire.config的更改基本仿照https://zhuanlan.zhihu.com/p/25709284就基本够了。
这里写一下我做的改变:
若使用的opencv版本是3的,则将#OPENCV_VERSION := 3 修改为:OPENCV_VERSION := 3
若要使用python来编写layer,则将#WITH_PYTHON_LAYER := 1修改为 WITH_PYTHON_LAYER := 1
使用anaconda的话,把之前的PYTHON_INCLUDE注释掉,ANACONDA_HOME及下面的PYTHON_INCLUDE都去掉注释,如下:
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
ANACONDA_HOME := $(HOME)/anaconda2
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
		 $(ANACONDA_HOME)/include/python2.7 \
		 $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
# PYTHON_LIB := /usr/lib   注释
PYTHON_LIB := $(ANACONDA_HOME)/lib  这里去掉注释
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
修改makefile文件:
(大概409行的样子):NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
大概181行,把 hdf5_hl和hdf5修改为hdf5_serial_hl 和 hdf5_serial,即改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

这个博主很精髓:点击打开链接

你可能会需要的链接:点击打开链接 解决anaconda和系统路径间的冲突:

make clean
export CPLUS_INCLUDE_PATH=/usr/include/python2.7
make all -j8

python路径都改为了anaconda的路径,但是CPLUS的path没有设置,系统中我也没把aneconda设置成默认的python导致的。

anaconda+tensorflow+ubuntu的也试了,比caffe的复杂度低一些,可以搭好。丢个参考链接: 点击打开链接

按照上面的链接安装,我遇到的问题是:anaconda里的库一大推,但是和anaconda下的envs/tensorflow被隔开了,在ide里是独立的两个路径,导致有tensorflow的那个路径下的库并不多。一个比较sb的解决方法是:把anaconda下的lib copy到envs/tensorflow/lib里 这样就可以了~  不知道中间安装的时候哪一个步骤路径没有弄好。。。
乌邦图很玄学的,安装报错,你再多来几次或者重启一下(本以为不像windows那样重启万能的哈哈)就又突然能装好了。。。就是这么神奇。。。

 

20180307更新新坑:

因为一些原因,我又重新配置了一遍tensorflow anaconda pycharm。出现的问题是,我的tensorflow库怎么都加不进pycharm......截图如下:

这个问题折腾了我好久,各种重装....

最后的解决方法是:

conda create -n tensorflow python=2.7     #这一步只会装很少量的一部分库......

source activate tensorflow

然后重点来了!!!放弃一些csdn上给的用pip装tensorflow的方法吧,真的是坑啊......

直接上conda命令:

conda install -c conda-forge tensorflow   启发于点击打开链接

这句是精髓啊!虽然会很慢,并且可能下载到一半就停了....没事,停了就命令再来一遍接着下~   漫长的等待后,你就会发现,pycharm倒库终于可以成功了~!!!

原因,我估计是因为用pip安装tensorflow的话,除了第一步conda create -n tensorflow python=2.7会装很少量的一些py库后,第三步基本没增加什么库...  所以倒入进来的库寥寥无几,并且tensorflow这个库你也没法加进来,会一直出现上上上张图中的那个红感叹号! 简直了...最后还是选择老老实实用conda慢慢的去装吧... 问题终于解决了~

 

 

20180311更新:

1. tensorflow gpu 版本更新:(原本是1.01版的...)

pip install --upgrade tensorflow-gpu

但是,这样更新出来的tensorflow会是当前最新的版本(比如这个时间点最新的是tf1.6 ),import tf的话,会出现:

ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory

因为之前装的貌似只是cuda 或者 cudnn,没办法兼容这么高版本的tf吧。。。想着装cuda还是蛮繁琐的,就还是退到低一点够用的版本吧,1.2吧:

pip install tensorflow-gpu==1.2

 

那么怎么解决这个 libcudnn.so.6 的问题呢? 参考了实验室师兄留下的安装文档(鼓掌):

cuda 版本查看

cat /usr/local/cuda/version.txt

ubuntu版本信息查看

uname -m && cat /etc/*release

然后去下载cudnn包,官网:cuda官网

注册后就可以下载了。版本很多,我找了好几个包才找到我要的

192M的一个包文件。。

然后:

$ tar zxvf  cudnn-8.0-linux-x64-v6.0.tgz
$ cd cuda
$ sudo cp include/cudnn.h /usr/local/include
$ sudo cp lib64/libcudnn.* /usr/local/lib
$ sudo ln -sf /usr/local/lib/libcudnn.so.6.0.21 /usr/local/lib/libcudnn.so.6
$ sudo ln -sf /usr/local/lib/libcudnn.so.6 /usr/local/lib/libcudnn.so
$ sudo ldconfig -v

再是cuda的环境配置:

sudo gedit /etc/ld.so.conf.d/cuda.conf

在文本中写下以下两行:

/usr/local/cuda-8.0/lib64
/lib

执行命令使文本生效:

 sudo ldconfig -v

出现图下所示即成功了~:

最后,放心的去 pip 你想要的版本的tensorflow吧~:

pip install tensorflow-gpu==1.3

 

嗯成功了!!!

 

以后再有需要升级tf的话,匹配tf版本所需的cudnn版本,然后按照上述的流程走就可以了~。。。

 

 

2. anaconda 下管理兼容不同版本的python:

有时候需要用到 python3,那么就得使得原先的python2和3兼容。。其实和anaconda下搭建tf环境是一样的,会在anaconda/envs 下新生成你建的p3环境:

首先conda新建新python3的环境:

conda create --name python3.5 python=3.5

如下图效果:

然后:

source activate python3.5 #激活python3.5环境
conda install *** #尽情安装你需要的包吧~
source deactivate #退出python3.5环境

之后的使用也是这样,你需要进入python3.5环境工作的话,就source activate python3.5,退出的话就source deactivate。。。

其他python版本或者是tensorflow环境也是一样的使用的~...

 

20180313更新:

tensorflow gpu版本安装:参考博客链接:tensorflow-gpu安装

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值