最近还是会有很多学习爱好者问我安装caffe的一些问题,虽然现在
TF
很是受大家的喜欢,但是还是会有很多学习者用着caffe。
为了让更多的人少走弯路,网上也有很多教程,我自己来写一下我以前安转的过程与遇到的问题,可以给那些初学者一些建议,希望采纳,如有不对之处,望指正,谢谢!
第一部分:
Ubuntu14.04桌面版下载及安装(我是通过U盘安装的,我用工具是UltraISO–特别好用,网上有很多教程,这个不用太过于详细书写)
第二部分:
nvidia-cuda-toolkit下载及安装
CUDA 8.0 Downloads
下载好安装包后,拷贝到你新建的文件下,如:/home/您的服务器名字/新建文件夹,这个目录,并用在终端操作:ctrl+alt+t,在此目录输入代码:
sudo dpkg -icuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb-----------------等待其完成;
sudo apt-get update-----------------等待其完成;
sudo apt-get install cuda-----------------等待其完成。
过一会就大功告成了,Cuda7.5安装成功。
第三部分:
安装mkl(我也是从别人百度云下载的,您应该也能下载到该文件,嘿嘿!就是下载有点慢。)
1-先安装mkl:
下载好后拷贝到/home/您的服务器名字/新建文件,这个目录,然后直接提取到此处并用终端ctrl+alt+t在此目录输入代码:
chmod a+x parallel_studio_xe_2016 -R----------------等待完成;
cd parallel_studio_xe_2016;
sudo sh install_GUI.sh(安装GUI)。
后面这里有一些繁琐:
在安装界面,依次点击next–>next–>next–>i accept–>next-输入激活码
激活码获取步骤:
进入网址 https://
registrationcenter.intel.com
/en/forms/?licensetype=2&productid=2486
全选后 accept,输入邮箱,此邮箱必须是教育机构的邮箱(也就是您们学习官方邮箱)
输入后全选accept,之后会出现一个下载页面,点击download,中间会有序列号,你把这个记住就好了。–>next–>no I don’twant…–>next–>next–>install–>next–>finish。
安装完成。
2-配置环境:
终端输入:
sudo gedit /etc/ld.so.conf.d/intel_mkl.conf,输入:
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
保存退出,再终端输入:
sudo gedit /etc/ld.so.conf.d/cuda.conf,输入:
/usr/local/cuda/lib64
/lib
保存退出,最后输入:
sudo ldconfig -v
完成。
第四部分:
安装opencv3.0.0
参考:ubuntu14.04+opencv 3.0安装及测试
Installation in Linux
4.1- 安装opencv所需的库
GCC 4.4.x or later
CMake 2.6 or higher
Git
GTK+2.x or higher, including headers (libgtk2.0-dev)
pkg-config
Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
[optional] libtbb2 libtbb-dev
[optional] libdc1394 2.x
[optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
4.2- 官网下载最新的opencv源码
4.3- 编译opencv
a.将opencv-3.0.0.zip放在任意目录下,解压 unzip opencv-3.0.0.zip
b.创建编译目录,编译
cd ~/opencv-3.0.0
mkdir release
cd release
%%首次运行下一步的时候出现了问题:提示下载ippicv_linux_20141027.tgz,然后下载不出
%%来,参考:Ubuntu14.04 下 OpenCV3 安装,独立下载了该文件,然后替换
%%了原来的文件(原来只有14m,下载的有28m)
%%下载地址 Browse /3rdparty/ippicv at SourceForge.net
%%替换文件路径 ~/opencv-3.0.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b
%用opencv-3.1.0的时候,可以不用下载ippicv_linux_20141027.tgz该文件去替换。
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
%输入后等待下载: Downloading ippicv_linux_20151201.tgz…
make –j4
%% j后面的数字最好是选择计算机的核心数目
sudo make install
4.4- 测试opencv【不必要】
4.4.1- 创建工作目录
mkdir ~/opencv-lena
cd ~/opencv-lena
gedit DisplayImage.cpp
4.4.2- 编辑如下代码
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
if ( argc != 2 )
{
printf("usage: DisplayImage.out <Image_Path>\n");
return -1;
}
Mat image;
image = imread( argv[1], 1 );
if ( !image.data )
{
printf("No image data \n");
return -1;
}
nameWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}
3.4.3 创建CMake编译文件gedit Cmakelist.txt
写入如下内容:
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
4.4.4- 编译
cd ~/opencv-lena
cmake .(注意后面的 “.” )
make
4.4.5- 执行
此时opencv-lena文件夹中已经产生了可执行文件DisplayImage,下载lena.jpg放在opencv-lena下,运行:./DisplayImage lena.jpg
第五部分:
安装依赖项
5.1-安装google-glog
下载地址:lee的caffe配置下载glog-0.3.3.tar.gz – 下载频道 – CSDN.NET
安装步骤:将glog‐0.3.3.tar.gz这个文件拷贝到主文件夹下,即/home/您的服务器名字文件夹下,提取到此处,解压后终端输入:
cd /home/您的服务器名字/glog-0.3.3
./configure
make
sudo make install
安装成功。
5.2-安装其他依赖项:
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler protobuf-c-compiler protobuf-compiler
5.3-安装Python所需依赖项:
sudo apt-get install -y python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython
第六部分:
配置cudnn文件(必用cudnn-7.0-linux-x64-v3.0-prod.tgz这个文件)
6.1 下载最新的cudnn库
官网注册一个developer的账号,等一两天审核,然后才能下载
6.2
解压
cudnn-7.0-linux-x64-v3.0-rc.tgz
tar cudnn-7.0-linux-x64-v3.0-rc.tgz
6.3 添加到cudn库中
cd cuda
sudo cp ./lib64/libcudnn.so.7.0.58 /usr/local/cuda/lib64/
sudo cp ./include/cudnn.h /usr/local/cuda/include/
sudo ln -s libcudnn.so.7.0.58 libcudnn.so.7.0
sudo ln -s libcudnn.so.7.0 libcudnn.so
sudo ldconfig /usr/local/cuda/lib64
第七部分:
配置caffe-master
将caffe-master.zip这个文件拷贝到主文件夹下,即/home/您的服务器名字文件夹下,提取到此处,解压后终端输入:
cd /home/您的服务器名字/caffe-master
cp ./Makefile.config.example ./Makefile.config
打开刚刚新建的Makefile.config文件,做如下修改:
7.1. 启用CUDNN,去掉”#”
USE_CUDNN := 1
7.2. 配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib/usr/lib/x86_64-linux-gnu/hdf5/serial
7.3. 启用Intel Parallel Studio XE 2016
BLAS := mkl
7.4. 配置路径,实现caffe对Python和Matlab接口的支持
PYTHON_LIB := /usr/local/lib
7.5. 启用OpenCV 3.0,去掉”#”
OPENCV_VERSION =3
到此修改结束,保存退出。
然后编译caffe-master,终端输入:
cd /home/您的服务器名字/caffe-master
make all -j16("‐j16"是使用CPU的多核进行编译,可以极大地加速编译的速度)
make test -j16
make runtest -j16
等待编译完成,完成后终端输入:
make pycaffe -j16(编译Python用到的caffe文件)
等待编译完成
到此caffe-master成功。
八 测试caffe (Le-Net 5)
%获取数据
cd data/mnist
sudo sh ./get_mnist.sh
%这样是需要下载的,也可以把mnist的数据,下载好然后放在目录下
%重建数据文件,将mnist重建为能被caffe使用的数据格式
cd ~/caffe-master
%注意要先回到根目录再进行下面的操作
sudo sh ./examples/mnist/create_mnist.sh
%训练Le-net 5
%注意如果是使用CPU模式的话,需要修改目录下的lenet_solver.prototxt文件,将
%solver_mode:GPU改为solver_mode:CPU
%在ubuntu 14.04直接双击更改即可,或者在终端用gedit或者vim改
%另外可以把迭代次数改小一点,比如5000
sudo sh ./examples/mnist/train_lenet.sh
最终训练完的模型会存储为一个lenet_iter_10000的文件,同时在训练时会显示训练的过程,每1000次训练会测试一次模型,accuracy为此时模型的准确率,loss为测试的代价函数。
再次感谢福跃的帮助与支持。
Be First to Comment