欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ubuntu16.04安装caffe教程(同时安装tensorflow)

程序员文章站 2022-05-30 21:19:35
...

#Ubuntu16.04安装caffe教程
经过一整天的安装,终于在笔记本上安装成功了Caffe记录一下。
我的电脑为i7 6700 + NVIDIA GTX960M,因为是游戏本还是双系统,显卡驱动有些难装。

  • 安装依赖项
  • 下载cuda8.0
  • 安装cudnn
  • 安装anaconda3
  • 安装opencv
  • 安装caffe
  • 安装tensorflow
    ##安装依赖项
sudo apt-get install libprotobuf-dev   
sudo apt-get install protobuf-compiler
sudo apt-get install libleveldb-dev
sudo apt-get install libsnappy-dev
sudo apt-get install libopencv-dev
sudo apt-get install libhdf5-serial-dev 
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 git cmake build-essential

在这里我拆开安装因为在安装时候遇到了一些错误。
##显卡驱动的安装
到设置->软件和更新->附加驱动查看
Ubuntu16.04安装caffe教程(同时安装tensorflow)
记住型号驱动为nvidia-384
使用了推荐驱动的可以不用重新安装驱动,去下载对应的cuda即可

若是没有安装驱动:
我按照网上其他人的安装方法来,直接导致炸机了。
方法一、正常方法是去英伟达官网下载对应版本的驱动
http://www.nvidia.com/Download/index.aspx?lang=en-us
Ubuntu16.04安装caffe教程(同时安装tensorflow)
注意驱动安装包最好放在HOME目录
终端输入sudo gedit /etc/modprobe.d/blacklist.conf
后在最后一行加上 blacklist nouveau将Ubuntu自带的显卡驱动加入黑名单
Ubuntu16.04安装caffe教程(同时安装tensorflow)
在终端输入: sudo update-initramfs -u更新一下
重启电脑
没有驱动开机可能直接报错,此时不要慌Ctrl+Alt+F1进入终端界面

sudo service lightdm stop 关闭图形界面
sudo chmod +x NVIDIA-Linux-x86_64-375.20.run 使得驱动有执行权限
sudo ./NVIDIA-Linux-x86_64-375.20.run 运行驱动程序

一步步按指示来,安装成功后重启。
方法二、按方法一来的炸机的只能重装驱动了,不要慌,按Ctrl+Alt+F1进入文字界面。

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-384 #此处要根据上面查询到的版本适当更改
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev

之后重启应该就没问题啦

##下载cuda8.0

在官网https://developer.nvidia.com/cuda-downloads找到cuda8.0下载。
嫌麻烦的直接在我百度云下载吧https://pan.baidu.com/s/11v8nqXWZUSVB8K1aqT01lw
运行sudo chmod +x cuda_8.0.44_linux.run
sudo ./cuda_8.0.44_linux.run
之后就是一系列的选择,在选择驱动时选否,其他都选是就行了。
然后设置cuda环境变量

sudo gedit ~/.bashrc
export PATH=/usr/local/cuda-8.0/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
source ~/.bashrc //使配置生效

验证cuda是否安装成功

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
Ubuntu16.04安装caffe教程(同时安装tensorflow)
出现这个就代表安装成功啦。

##安装cudnn
https://developer.nvidia.com/rdp/cudnn-download到官网下载,对应cuda版本的Linux的cudnn压缩包。
官网下载 cudnn 需要注册帐号并登录
嫌麻烦的https://download.csdn.net/download/tianjiazhao/10506832从我的csdn下载也行,嘿嘿
讲压缩包解压,两个文件夹。
Ubuntu16.04安装caffe教程(同时安装tensorflow)
在cudn/include 路径下

sudo cp cudnn.h /usr/local/cuda/include/

进入cudn/lib64

sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5 #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接

验证是否成功 输入nvcc-V
Ubuntu16.04安装caffe教程(同时安装tensorflow)
显示如图则成功。

##安装opencv3.4

sudo apt-get update 先更新一下
1.安装build-essential、cmake、git和pkg-config工具
sudo apt-get install build-essential cmake git pkg-config

2.安装所需要的各种图像包:
sudo apt-get install libjpeg8-dev (jpeg图像包)
sudo apt-get install libtiff5-dev (tif图像包)
sudo apt-get install libjasper-dev (JPEG-2000图像包)
sudo apt-get install libpng12-dev (png图像包)
3.视频所需要的的包:
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
4.安装gtk2.0:
sudo apt-get install libgtk2.0-dev
5.优化包的安装:
sudo apt-get install libatlas-base-dev gfortran

到这一步各种工具包就安装成功啦。
https://github.com/opencv/opencv/releases到这个网站去下载opencv源码tar.gz格式的,感觉安装比较快。
下载完之后解压
1.cd ~ 移动到解压的opencv目录
2.建立一个build文件夹
mkdir build
3.cd build 进入build文件夹
4.安装到 /urs/local

cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local ..

5.开始编译:

sudo make //等待一会 可以使用 sudo make -j4 加快速度不过我使用的时候系统总是崩溃

sudo make install //这个过程可能要数个小时

sudo gedit /etc/ld.so.conf.d/opencv.conf 
添加/usr/local/lib  
sudo ldconfig   //更新一下链接库

sudo gedit /etc/bash.bashrc  
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

source /etc/bash.bashrc  

到此opencv就正式安装完毕!

pkg-config --modversion opencv 查看版本

可以写个代码测试一下

建立一个test.cpp


#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;

int main()

{

Mat img=imread("1.jpg");

imshow("test",img);

waitKey(0);

return 0;

}

建立一个CMakeLists.txt写入

cmake_minimum_required(VERSION 2.8)  
project( test)  
find_package( OpenCV REQUIRED )  
add_executable( test test.cpp )  
target_link_libraries( test${OpenCV_LIBS} )  

在这个文件目录下放一个名为1.jpg的图片

cd 到这个文件夹

cmake .

make

./test

若输出图像则配置正确

##安装Anaconda

https://www.continuum.io/downloads去官网下载对应python版本的
嫌麻烦从我百度云下https://pan.baidu.com/s/1S2VZXl3SVn0mso0U2QSuBQ
Ubuntu16.04安装caffe教程(同时安装tensorflow)

sudo chmod +x Anaconda3-4.2.0-Linux-x86_64.sh
./Anaconda3-4.2.0-Linux-x86_64.sh
一路按提示过去,最后会提示你是否加入环境变量中,记得选择是,默认的是否,仔细看清!

##重头戏caffe的安装

git clone https://github.com/BVLC/caffe.git

若是git速度太慢,就只能*去下了,
可以参考https://blog.csdn.net/tianjiazhao/article/details/80841385

sudo cp Makefile.config.example Makefile.config

复制一份的原因是编译 caffe 时需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 给出的配置文件例子,不能用来编译 caffe。

sudo gedit Makefile.config

按照自己的需求去更改makefile.config和makefile,不懂makefile的小伙伴就很伤啦。
首先cudnn前注释去掉
Ubuntu16.04安装caffe教程(同时安装tensorflow)
USE_OPENCV注释去掉
Ubuntu16.04安装caffe教程(同时安装tensorflow)
这个注释也去掉
Ubuntu16.04安装caffe教程(同时安装tensorflow)
Ubuntu16.04安装caffe教程(同时安装tensorflow)
Ubuntu16.04安装caffe教程(同时安装tensorflow)
修改anaconda——python路径
Ubuntu16.04安装caffe教程(同时安装tensorflow)
注意要将python2的路径注释掉。
然后makefile.config就修改完啦,接下来修改makefile文件

将:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial \
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
将
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

sudo make all -j8多线程编译,报错就改为sudo make all
编译的时候可能会出很多错误,出错误了去google一个个查找看看,不要一失败就重装系统!
成功之后sudo make runtest -j8
Ubuntu16.04安装caffe教程(同时安装tensorflow)
出现这个即为成功。
##然后编译Python接口
sudo make pycaffe -j8

python

import caffe

报错1:python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: 没有那个文件或目录
去下载numpy库

报错2:File “<stadin>”, line 1, in ImportError: No module named caffe

sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrc

source ~/.bashrc

将caffe填入环境变量中

报错3:ImportError: No module named ‘google’ ·

conda install protobuf==3.2.0(为什么安装3.2.0呢,因为和后面tensroflow的1.2.0相配不会出问题)

报错4:/usr/lib/x86_64-linux-gnu/libboost_python.so:对‘PyUnicode_InternFromString’未定义的引用 collect2: error: ld returned 1 exit status Makefile:632: recipe for target ‘.build_release/examples/mnist/convert_mnist_data.bin’ failed
这时候去查查makefile.config的设置有没有问题

出现下图即为正确。
Ubuntu16.04安装caffe教程(同时安装tensorflow)
更新:2018.10
Anaconda python3.6.5
报错:
/usr/bin/ld: 找不到 -lboost_python3

cd /usr/lib/x86_64-linux-gnu/
sudo ln -s libboost_python-py35.so libboost_python3.so

报错:
libcudart.so.8.0: cannot open shared object file: No such file or directory

sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig

报错:
libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

sudo cp /home/tianjiazhao/anaconda3/lib/libpython3.6m.so.1.0 /usr/local/lib/libpython3.6m.so.1.0 && sudo ldconfig

报错:
libcublas.so.8.0: cannot open shared object file: No such file or directory

sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig

报错:
libcurand.so.8.0: cannot open shared object file: No such file or directory

sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig

报错:
libcudnn.so.5: cannot open shared object file: No such file or directory
报错:
warning! HDF5 library version mismatched error
The HDF5 header files used to compile this application do not match

Headers are 1.10.2, library is 1.8.16
首先卸载hdf5
conda uninstall hdf5
然后下载1.8.16版本即可
conda install hdf5=1.8.16

同时安装tensorflow:

conda create -n tensorflow python=3.6

source activate tensorflow
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.2.0-cp36-cp36m-linux_x86_64.whl

注意:cuda8.0 cudnn5.0搭配tehsroflow1.2.0使用

配置pycharm

报错:ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory不知道为什么设置cuda环境变量一直不起作用。
解决方法:
pycharm菜单 Run->Edit Configurations
Ubuntu16.04安装caffe教程(同时安装tensorflow)
设置如下:
Ubuntu16.04安装caffe教程(同时安装tensorflow)

相关标签: caffe