http://blog.csdn.net/u011494081/article/details/78076674
http://blog.csdn.net/ysy950803/article/details/52643737
http://blog.csdn.net/zhayushui/article/details/78541305
https://zhuanlan.zhihu.com/p/25709284
http://www.cnblogs.com/lyyang/p/6540000.html
http://blog.csdn.net/isuccess88/article/details/70165726?utm_source=itdadao&utm_medium=referral
1.安装Ubuntu
对于GTX1080的显卡,安装时会进入到选择安装界面,但是一但点击安装将出现无法出现界面的情况,在链接1中找到了解决办法。说的很详细,只作为记录。
(1)、在安装时,选择“install ubuntu"后,按e进入命令行,找到含有quiet splash --- ”的行,将"---"修改为"nomodeset",然后按下F10启动系统。
(2)、开机后进入安装引导界面,参考链接2进行安装。
安装记录如下:
新建swap交换空间,也就是虚拟内存的地方,swap-主分区-空间起始位置,大小最好为内存的2倍。
新建efi系统分区,efi系统分区-EX4日志文件系统-逻辑分区-空间起始位置,可以设为512M。
说明:如果这里的类型选项中没有efi系统分区,是由于BIOS里启动模式不是以EFI模式启动的(或者电脑不支持efi模式),需要在BIOS里设置一下。
新建分区,挂载“/”, “/"-EX4日志文件系统-逻辑分区-空间起始位置,空间此处设为10G。
新建分区,挂载"/home", “/home"-EX4日志文件系统-逻辑分区-空间起始位置,空间此处设为40G。
新建分区,挂载"/usr",“/usr"-EX4日志文件系统-逻辑分区-空间起始位置,空间此处设为40G。
在下方的安装引导启动器的设备中要注意选择正确,选择刚刚新建"efi系统分区"前的名称,剩下的就按自已需要配置即可。
(3)、安装完成后,重启进入引导界面,选择第一项“ubuntu”,按e进入命令行,找到quite splash,在其后面加上nomodeset,F10进入系统。
2.配置显卡驱动
进入系统后,可以按链接1的剩下部分修改grub,也可以直接进入链接2部分。
(1)、update最新系统
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
(2)安装vim
sudo apt-get install vim
(3)可以选择装备份还原systemback软件
sudo add-apt-repository ppa:nemh/systemback
sudo apt-get update
sudo apt-get install systemback
卸载命令为:sudo apt-get remove --purge systemback
(4)验证GPU是否支持CUDA(有显示即可)
lspci | grep -i nvidia
uname -m && cat /etc/*release
gcc --version
uname -r
sudo apt-get install linux-headers-$(uname -r)
(5)禁用自带的nouveau nvidia驱动
vim /etc/modprobe.d/blacklist-nouveau.conf
写入以下文件并保存
blacklist nouveau
options nouveau modeset = 0
然后运行以下命令
sudo update-initramfs -u
sudo reboot
重启后确认nouveau是否已经被屏蔽
lsmod | grep nouveau
(6)安装nvidia显卡驱动
按住ctrl+alt+F1进入控制台(Ctrl+Alt+F7切换到图形界面),输入以下指令
sudo service lightdm stop
sudo init 3
删除现有nvidia驱动
sudo apt-get purge nvidia-*
在以下过程中,我是按照自已的想法reboot,然后重新进入图形界面操作的。
增加nvidia驱动ppa链接库
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
显示设备相关驱动,可以看出推荐的驱动版本
ubuntu-drivers devices
sudo apt-get install nvidia-390 //390为上一条语句推荐的驱动版本
sudo reboot
//重启之后验证nvidia是否安装成功
nvidia-smi 或者 nvidia-settings
(7)安装CUDA8.0
下载以下两个文件
cuda_8.0.61_375.26_linux.run
cuda_8.0.61.2_linux.run
下载完成后,找到其位置,例如我的下载后在"下载"文件夹里
chmod +x 下载/cuda_8.0.61_375.26_linux.run
chmod +x 下载/cuda_8.0.61.2_linux.run
sudo sh 下载/cuda_8.0.61_375.26_linux.run
sudo sh 下载/cuda_8.0.61.2_linux.run
按照提示,除了显卡驱动不需要安装,其他yes或者默认位置即可,即在
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 ****?的时候选择n。
若不幸安装失败,卸载命令为:/usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl
配置环境变量
sudo gedit ~/.bashrc
在最后加上以下内容,并保存退出。
if [ -z $PATH ]; then
PATH=/usr/local/cuda-8.0/bin
else
PATH=/usr/local/cuda-8.0/bin:$PATH
fi
export PATH
if [ -z $LD_LIBRARY_PATH ]; then
LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64
else
LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
fi
export LD_LIBRARY_PATH
使配置的环境变量生效
source ~/.bashrc
判断cuda是否安装成功
nvcc --version
重启并确认cuda是否安装成功
reboot
nvcc --version
验证cuda的Samples
cd /home/xxx/NVIDIA_CUDA-8.0_Samples
make -j8 //成功的话最后一行显示的应该是Finished building CUDA samples.
sudo /bin/x86_64/linux/release/deviceQuery
(8)安装cudnn
下载cudnn-8.0-linux-x64-v7.tgz。
cd ~
sudo chmod +x cudnn-8.0-linux-x64-v7.tgz
tar -zxvf cudnn-8.0-linux-x64-v7.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib*/libcudnn* /usr/local/cuda/lib64/
sudo ldconfig
(3) 安装opencv3.1
下载opencv3.1的zip包,解压。
unzip opencv-3.1.0.zip //(注意路径)
cd opencv-3.1.0
将graphcuts.cpp文件中的
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
改为
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
保存退出。
继续在终端中输入以下指令
mkdir build
cd build
sudo apt-get install cmake
在这里我推荐使用cmake-gui来进行cmake,这是若干次的失败后的经验,现在在网上可以搜到各种各样的cmake的命令,我在网上查找过很多并都有经过 尝试,然而都有是失败,而在cmake-gui下很容易的配置成功。下面是我配置cmake-gui的截图,可以参考使用。
编绎成功后执行opencv安装
sudo make install -j8
安装完成后可以进行测试:
vim ex.py
import cv2
img = cv2.imread('1.jpg')
cv2.imshow('1.jpg', img)
cv2.waitKey(0)
保存退出,在/home/xzc/下放一张名为1.jpg的图片,执行下条命令
python /home/xzc/ex.py
顺利的话会有图像显示,这里需要量注意的是,如果使用python命令行进行一条条输入的话imshow()的时候并不会立即显示图片,一直到运行完cv2.waitKey(0)后才会显示图像,不知道是不是我的版本的问题。
4、安装Anaconda3
下载Anaconda-3.4.2.0-Linux-x86_64.sh
bash Anaconda-3.4.2.0-Linux-x86_64.sh
这里需要说明的是我开始下载的是3.4.0.0版本,一直到安装完caffe的时候都是正常的,然后在import caffe时一直报错,查了很久有的网站说python3.4.x的版本里面存在相同的python bug,没办法重新下载了3.4.2.0,安装后很顺利的成功了。
按照提示进行安装。
sudo gedit ~/.bashrc
在文件最后加上
alias python='/home/xxx/anaconda3/bin/python'
并保存退出。然后执行
source ~/.bashrc
5、安装caffe
clone caffe源码:
cd ~/
git clone http://github.com/BVLC/caffe.git
安装caffe依赖包:
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 libatlas-base-dev
sudo apt-get install libgoogle-glog-dev liblmdb-dev libgflags-dev
cd caffe/python
for req in $(cat requirements.txt); do pip3 install $req; done
修改caffe工程文件:
cd caffe
cp Makefile.config.example Makefile.config
vim Makefile.config
将Makefile.config文件根据需要修改:
(1) 因为使用cudnn,将将#USE_CUDNN := 1修改成: USE_CUDNN := 1 (就是去掉注释的‘#’号)
(2) 因为使用opencv3.1,将#OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 3
(3) 因为要使用python来编写layer,则将#WITH_PYTHON_LAYER := 1修改为 WITH_PYTHON_LAYER := 1
(4) 因为使用的是Anaconda3,则取消以下几处的注释
//此处添加注释
ANACONDA_HOME := $(HOME)/anaconda3
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python3.5m \
$(ANACONDA_HOME)/lib/python3.5/site-packages/numpy/core/include \
PYTHON_LIBRARIES := boost_python3 python3.5m
# PYTHON_LIB := /usr/lib
PYTHON_LIB := $(ANACONDA_HOME)/lib
// 修改成:
INCLUDE_DIRS += $(BUILD_INCLUDE_DIR) ./src ./include /usr/include/hdf5/serial
保存修改后的文件
修改makefile文件(不是Makefile.config)
vim makefile
// 将文件中的变量 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
// 保存修改后的Makefile
cd /usr/lib/x86_64-linux-gnu/
sudo ln -sf libboost_python-py35.so libboost_python3.so
sudo ldconfig
pycaffe安装
sudo apt-get install python-pip python-dev //build-essential
pip install --upgrade pip
修改.bashrc文件,并在最后添加
vim ~/.bashrc
export PYTHONPATH='/home/xxx/caffe/python:$PYTHON'
sudo apt-get install python-pip python-dev
sudo python3 -m pip install -U pip
sudo -H pip install -r python/requirements.txt
编绎caffe工程
make all -j8
make test -j8 //不是必须
make runtest -j8 //不是必须
其中若出现libopencv.so.3.2的错误,可以执行
sudo ldconfig
make clean
后重新生成。
其他故障可以参考链接5。
如果执行测试,成功后会显示2139 tests.画面。
make pycaffe
通过之后在命令行进入python,输入
python
import caffe
在我的版本里出现的错误都在链接6里出现了,作简单记录
当出现raise ValueError, "Can't create weekday with n == 0"这种错误时,退出python输入
pip install matplotlib --upgrade
当出现Intel MKL FATAL ERROR: Cannot load libmkl_avx.so or libmkl_def.so错误时,输入
conda update numpy
也许你会和我一样会出现ImportError: No module named google.protobuf等类似问题时,请参考http://blog.csdn.net/dcrmg/article/details/78358279。
这篇文章里参考了很多人的做法,也包括自己的一些想法,难免有些乱,而且过程中各种版本的东西方并没有都有及时的记录下来,
这些记录当作自己的备忘,也对引用的这些博友的文章致以感谢,给我了很大的帮助,也希望这篇文章能帮助到一些和我一样有需求的人。