网上的资源真的很多了,贴链接:
参考博客:点击打开链接
点击打开链接
点击打开链接
这篇写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官网
注册后就可以下载了。版本很多,我找了好几个包才找到我要的
然后:
$ 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安装