Caffe installation on ubuntu16.04 sever
来源:互联网 发布:iphonex专用软件 编辑:程序博客网 时间:2024/05/01 20:33
Caffe installation on ubuntu16.04 sever
- Caffe installation on ubuntu1604 sever
- 一ubuntu1604 的安装及分区
- 如何进入boot启动区
- 如何分区
- 安装过程中的注意事项
- 二caffe 安装详解
- 安装一些开发所需的依赖包官方wiki
- 安装CUDA80cuDNNv51
- 安装OpenCV 2413
- 安装openblas
- 安装matlab2016b官方正版系统
- 三caffe编译与测试
- Makefileconfig的修改
- caffe的编译及测试
- pycaffe的编译
- matcaffe的编译
- mnist 使用测试
- 四编译过程中遇到的问题
- 一ubuntu1604 的安装及分区
# 系统配置OS:ubuntu16.04 server版 # 22/89/90GPU:Tesla K80 # 4/2/4CPU:Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz # 32/16/32 cat /proc/cpuinfo 查看线程数MEM:125G/31G/125G # free -h 查看CUDA8.0+cudnnv5.1+opencv2.4.13+openblas+matlab2016b(没有整合到caffe中)# 22/90分区情况swap:128G/:100G/share:732G/home:960G# 更改软件镜像源编辑源文件:sudo vim /etc/apt/sources.list;在镜像地址中包含国家代码:%s/hk/cn# 更新源和更新已安装的包sudo apt-get update sudo apt-get upgrade
一、ubuntu16.04 的安装及分区
1. 如何进入boot启动区
- 重启电脑,按F11进入boot ,选择从USB启动进入系统,one-shot 那一项里选择。
2. 如何分区
- ubuntu server 系统分区参考
- ubuntu server 安装详解
3. 安装过程中的注意事项
- 选择手动设置网卡的IP地址,其中域名(Domain name)已被注销,安装过程中直接下一步就可以了。
- 分区时选择手动分区(Manual),一般分为swap, /, /share, /home四个分区。内存小于16G时,swap 一般为内存的1.5-2倍,而我们的内存为128G,直接设置成内存大小就可以了;根目录分100G够用了;/share用于存放数据,根据需求分配;剩下的全部分给/home,越多越好。
- 选择不自动更新系统
- 最后选择安装软件OpenSSH server,便于我们远程登陆。
二、caffe 安装详解
1.安装一些开发所需的依赖包(官方wiki)
sudo apt-get install git build-essential cmake pkg-configsudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilersudo apt-get install --no-install-recommends libboost-all-devsudo apt-get install libopenblas-base# Python generalsudo apt-get install -y python-pip# Python 2.7 development filessudo apt-get install -y python-devsudo apt-get install -y python-numpy python-scipy python-opencvsudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
- 部分依赖包解析
- Boost:被称为”C++准标准库”,在caffe中主要使用了Boost中的智能指针,其自带引用计数功能,可避免共享指针时造成内存泄漏或多次释放。-
- BLAS(Basic Linear Algebra Subprograms):主要用于矩阵、向量计算,常用OpenBlas or MKL。
- OpenCV:著名的计算机视觉库,caffe 使用OpenCV 完成一些图像存取和预处理功能。
- 谷歌开源的一套东西
- ProtoBuffer:谷歌开发的一种实现内存与非易失存储介质(如,硬盘文件)交换的协议接口。caffe 源码中大量使用ProtoBuffer作为权值和模型参数的载体。
- gflags:在caffe 中主要起到命令行参数解析的作用,这与ProtoBuffer 功能类似,只是参数输入源不同。
- glog:谷歌开发的用于记录程序日志的实用库,便于查看caffe训练过程中产生的中间输出。
- IO 相关的库
- LMDB 和 LEVELDB:LMDB(Lightning Memory-Mapped Database Manager)——闪电般的内存映射型数据库管理器。
- HDF5**(Hierarchical Data File):一种能高效存储和分发科学数据的新型数据格式。caffe的训练模型**可以选择保存为HDF5格式或者ProtoBuffer(default) 格式。
- Snappy:用来压缩和解压缩的C++库。
2. 安装CUDA8.0+cuDNNv5.1
- CUDA(Compute Unified Device Architecture):是由NVIDIA在2006年推出的一套针对异构计算资源(说白了就是intel CPU + 自家GPU)下的大规模并行计算的架构,包括编译器(nvcc)、开发工具、运行时库和驱动等模块,是当今最流行的GPU编程环境。
cuDNN:NVIDIA从2014年开始推出的面向深度学习的专用加速库,支持常见的深度学习计算类型(卷积、下采样、非线性、Softmax等)。
老版本cuda的卸载(备用)
CUDA8.0的安装参见官方文档CUDA_Quick_Start_Guide中有关Debian Installer的步骤即可
verify the system:主要是下面两项
gcc -v # 检查有没有安装sudo apt-get install linux-headers-$(uname -r) # install the kenerl headers and development packages
详细安装步骤可参考官方文档NVIDIA CUDA Installation Guide for Linux
- CUDA8.0 中自带驱动,所以不用先装驱动了。
添加环境变量到
/etc/profile
中使其永久生效,并设置动态链接库export PATH=/usr/local/cuda/bin:$PATH # cuda path sudo vim /etc/ld.so.conf.d/cuda.conf # 设置动态链接库/usr/local/cuda/lib64 # 按下键盘i进行编辑,输入链接库位置sudo ldconfig
安装CUDA SAMPLES 进行测试CDUA是否真的安装成功
检查驱动及CUDA版本
cat /proc/driver/nvidia/version nvidia-sminvcc -V
参考上面的官方文档+测试CUDA blog
cuDNNv5.1的安装参见欧老师的blog
tar zxvf cudnn-8.0-linux-x64-v5.1.tgzcd cudasudo cp include/cudnn.h /usr/local/include # 复制头文件sudo cp lib64/libcudnn.* /usr/local/lib # 复制动态链接库sudo ln -sf /usr/local/lib/libcudnn.so.5.1.5 /usr/local/lib/libcudnn.so.5 # 生成软连接sudo ln -sf /usr/local/lib/libcudnn.so.5 /usr/local/lib/libcudnn.so # 生成软连接sudo ldconfig # 使配置立即生效
3. 安装OpenCV 2.4.13
- OpenCV 2.4.13.1 documentation—–Installstion in Linux
- 查看opencv 的版本:
pkg-config --modversion opencv
- 使用shell脚本自动安装Install-opencv-2.4.13-in-ubuntu16.04.sh,最后使用
python
import cv2
测试。
# install dependenciessudo apt-get updatesudo apt-get install -y build-essentialsudo apt-get install -y cmakesudo apt-get install -y libgtk2.0-devsudo apt-get install -y pkg-configsudo apt-get install -y python-numpy python-devsudo apt-get install -y libavcodec-dev libavformat-dev libswscale-devsudo apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-devsudo apt-get install -y unzipsudo apt-get -qq install libopencv-dev build-essential cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2 libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils# download opencv-2.4.13wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.13/opencv-2.4.13.zipunzip opencv-2.4.13.zipcd opencv-2.4.13mkdir releasecd release# compile and installcmake -G "Unix Makefiles" -D CMAKE_CXX_COMPILER=/usr/bin/g++ CMAKE_C_COMPILER=/usr/bin/gcc -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D BUILD_FAT_JAVA_LIB=ON -D INSTALL_TO_MANGLED_PATHS=ON -D INSTALL_CREATE_DISTRIB=ON -D INSTALL_TESTS=ON -D ENABLE_FAST_MATH=ON -D WITH_IMAGEIO=ON -D BUILD_SHARED_LIBS=OFF -D WITH_GSTREAMER=ON -D BUILD_TIFF=ON ..make all -j $(($(nproc) + 1)) # use all threadssudo make install# 配置动态链接库sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'sudo ldconfig# ignore libdc1394 error http://stackoverflow.com/questions/12689304/ctypes-error-libdc1394-error-failed-to-initialize-libdc1394# python test # python #>import cv2#>
cd release, sudo apt-get install checkinstall, sudo checkinstall # This will create the OpenCV package that has a modern install/uninstall option.
- 卸载opencv
dpkg -r release
4. 安装openblas
参考手动从source安装
安装完成后修改caffe 中的Makefile.config 和 /etc/profile 添加环境变量。
- 不用设置OpenBLAS所使用的线程数,它应该是自动分配的。
5. 安装matlab2016b(官方正版系统)
- 查看gcc编译器的版本号:
gcc -v
# 建立挂载目录sudo mkdir /media/matlab sudo mount -o loop /your/path/to/R2016b_glnxa64_dvd1.ios /media/matlab # 先挂载dvd1,安装完dvd1后会提醒挂载dvd2,重新开个终端,再把dvd2挂载上即可。# 先在自己本地电脑解压dvd1,把其中的installer_input.txt复制一份传到服务器上,然后按照下面进行修改destinationFolder=/usr/local/matlab2016bfileInstallationKey=09806-07443-53955-64350-21751-41297-.....agreeToLicense=yesoutputFile=/tmp/mathworks_username.logmode=silentlicensePath=/your/path/to/license.dat # Begin: Options for Network License Types# 执行安装sudo /media/matlab/install -inputFile /your/path/to/installer_input.txt # 配置环境变量,使得直接输入matlab即可启动软件sudo vim /etc/profile# 在文件末尾添加export PATH=/usr/local/matlab2016b/bin:$PATH# 保存并退出后使设置生效source /etc/profile# 在任意位置输入matlab测试,若出现如下界面,而说明安装成功
- Caffe’s MATLAB interface works with versions 2015a, 2014a/b, 2013a/b, and 2012b,可以尝试安装低版本的matlab。
- 此外ubuntu16.04用的是gcc5.4,matlab2016b最高支持gcc4.9,所以编译matcaffe 会出错,此问题有待解决。
三、caffe编译与测试
1. Makefile.config的修改
- 在caffe目录下执行
cp Makefile.config.example Makefile.config
,然后根据Makefile.config中的注释进行修改。
USE_CUDNN := 1USE_OPENCV := 2BLAS := openBLAS_INCLUDE := /usr/local/openblas/includeBLAS_LIB := /usr/local/openblas/libINCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serialLIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial# MATLAB_DIR := /usr/local/matlab2016b(暂时还不能用)WITH_PYTHON_LAYER := 1
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) # 用此行代码替换Makefile中的相关代码,避免gcc编译出错
2. caffe的编译及测试
- make all -j8
- make test -j8
- make runtest -j8
3. pycaffe的编译
cd ~/caffe/python
for req in $(cat requirements.txt); do pip install $req; done # 安装依赖项
make pycaffe -j8
- 添加环境变量,
vim ~/.bashrc
- 将
export PYTHONPATH=/home/manzp/caffe/python
添加到文件末尾处。 source ~/.bashrc
,至此,在其他地方打开python,也可以import caffe了。
4. matcaffe的编译
make matcaffe -j8
make mattest -j8
- 要在matlab中使用caffe时需要先添加路径,
addpath('./matlab')
(默认在caffe根目录下,“.”表示当前目录,如果在其他目录中调用matcaffe需要修改该路径),然后进入matlab使用help caffe测试是否可以正常使用。
5. mnist 使用测试
- cd $CAFFE_ROOT,在caffe的根目录下执行下面的文件。
- sh data/mnist/get_mnist.sh
- sh examples/mnist/create_mnist.sh
- sh examples/mnist/train_lenet.sh
四、编译过程中遇到的问题
- 修改Makefile.config文件中的opencv并make all -j16时,只有当设置
USE_OPENCV := 2
时能编译成功,设置USE_OPENCV := 1 OPENCV_VERSION := 2.4.13或2
都不能编译成功,不知道为什么??? make runtest -j16
时遇到下图所示问题,export NVIDIA_VISIBLE_DEVICES=0 make runtest
后编译成功。- 具体错误
其中一个caffe开发者的回复如下,
it seems to be an issue with the test itself
,所以此错误应该可以忽略。
0 0
- Caffe installation on ubuntu16.04 sever
- 编译caffe on Ubuntu16.04
- Markdown Editor--Haroopad Installation on Ubuntu16.04
- Ubuntu16.04+CUDA8.0+ANACONDA2+cuDNN+caffe+opencv installation
- ubuntu16.04安装caffe
- Ubuntu16.04 安装caffe
- Ubuntu16.04 安装caffe
- Ubuntu16.04 Caffe安装
- Ubuntu16.04编译caffe
- Ubuntu16.04 安装Caffe
- Ubuntu16.04 安装Caffe
- ubuntu16.04 + caffe +python
- Ubuntu16.04安装Caffe
- ubuntu16.04 caffe
- ubuntu16.04 安装 caffe
- ubuntu16.04 caffe install
- ubuntu16.04 caffe
- Ubuntu16.04安装caffe
- Web 前端学习笔记之 HTML 入门(3)
- 2016.12.29回顾
- 东周列国 演绎版 mp3
- Java学习笔记(二十六):String.split()的使用
- ZCMU-1140-松哥
- Caffe installation on ubuntu16.04 sever
- 开通博客
- shell 1>&2 2>&1 &>filename重定向的含义和区别
- Count and Say
- 前端开发的模块化和组件化的定义,以及两者的关系?
- devexpress 破解版消除运行弹窗
- JQuery实现搜索关键词变红,包含关键词的div显示,无div的隐藏
- 只属于我自己的2016
- leetcode 53. Maximum Subarray(分治,递归)