本流程在此硬件上实测通过:
主要参考:
sudo apt-get install python-pip
sudo pip install easydict protobuf pydot
sudo apt-get install graphviz libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libopenblas-dev liblapack-dev libatlas-base-dev libgflags-dev libgoogle-glog-dev liblmdb-dev python-tk python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags
sudo apt-get install --no-install-recommends libboost-all-dev
nouveau是ubuntu系统自带的驱动程序,但是不适用于cuda,所以要舍弃掉。
sudo gedit /etc/modprobe.d/blacklist.conf
blacklist nouveau
options nouveau modeset=0
sudo update-initramfs -u
lsmod | grep nouveau
如果这个项是enable,那么就无法切换成Nvidia的独显。
将nouveau从内核中卸载后,由于intel自带有显卡驱动,所以这时我们应该是能够正常进入ubuntu系统的,在 系统设置>详细信息 应该能看到自己现在的图形驱动。
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
ubuntu-drivers devices
对应GTX1060显卡驱动是384 (在我最终都安装完digits之后写本本文档时,再输入上面的命令后,显示recommended版本变成了396,估计是后面的某些安装更新了版本,whatever,初次安装时,就选显示列表中后面有recommended字样的版本)
sudo apt-get install nvidia-384
sudo reboot
注意上面nvidia-后面的版本号,按照你的系统推荐来改
重启系统后,执行下面的命令查看驱动的安装状态显示安装成功:
sudo nvidia-smi
sudo nvidia-setting
会打开NVIDIA控制台
如果上述安装有问题,需要重新安装,可以使用以下命令卸载:
sudo apt-get remove --purge nvidia-*
点击下面链接CUDA下载网址默认到最新版本,貌似CUDA9.2版本太新,安装多次都有问题,所以建议下载CUDA9.0CUDA9.0下载
根据系统环境选择下载文件类型,我下载的是deb( local) 版,如下:
进入到下载文件所在目录,依次输入下列命令行安装CUDA(如果你下载的版本不同,注意修改相应的文件名cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
和版本号-9-0-local
:
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
sudo apt-get install cuda-toolkit-7-5
安装完成后, 重启一下
在/etc/profile中添加CUDA环境变量
sudo gedit /etc/profile
在打开的文件最后加入如下3句话(记得将“用户名”修改成实际的)
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PYTHONPATH=/home/用户名/caffe/python:$PYTHONPATH
保存后, 使环境变量立即生效
source /etc/profile
sudo gedit ~/.bashrc
在打开的文件最后加入如下3句话(具体要注意cuda的版本号;记得将“用户名”修改成实际的)
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export PYTHONPATH=/home/用户名/caffe/python:$PYTHONPATH
执行
source ~/.bashrc
进入/usr/local/cuda/samples, 执行下面的命令来build samples
cd /usr/local/cuda/samples
sudo make all -j16
全部编译完成后, 进入(具体要注意cuda的版本号)
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo ./deviceQuery
如果出现显卡信息,结果为pass, 则驱动及显卡安装成功。
下载链接
需要注册并填写一个survey,然后下载
选择对应CUDA版本的cuDNN(此处选择V7.0.5)
点击cuDNN v7.0.5 Library for Linux ,下载得到文件cudnn-9.0-linux-x64-v7.tgz
切换到cudnn所在的目录下:
sudo tar -zxvf cudnn-9.0-linux-x64-v7.tgz (文件解压缩)
copy文件到CUDA目录
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
cd /usr/local/cuda/lib64/
ls
sudo chmod +r libcudnn.so.7.0.5(具体的版本要自己查)
sudo rm -rf libcudnn.so libcudnn.so.7 #删除原有动态文件
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 #生成软衔接(注意这里要和自己下载的cudnn版本对应,可以在/usr/local/cuda/lib64下查看自己libcudnn的版本)
sudo ln -s libcudnn.so.7 libcudnn.so #生成软链接
sudo ldconfig -v
sudo apt-get install autoconf automake libtool curl make g++ git python-dev python-setuptools unzip
export PROTOBUF_ROOT=~/protobuf
git clone https://github.com/google/protobuf.git $PROTOBUF_ROOT -b '3.2.x'
cd $PROTOBUF_ROOT
./autogen.sh
./configure
make "-j$(nproc)"
make install
ldconfig
cd python
python setup.py install --cpp_implementation
sudo apt-get install --no-install-recommends build-essential cmake git gfortran libatlas-base-dev libboost-filesystem-dev libboost-python-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libhdf5-serial-dev libleveldb-dev liblmdb-dev libopencv-dev libsnappy-dev python-all-dev python-dev python-h5py python-matplotlib python-numpy python-opencv python-pil python-pip python-pydot python-scipy python-skimage python-sklearn
export CAFFE_ROOT=~/caffe
git clone https://github.com/NVIDIA/caffe.git $CAFFE_ROOT -b 'caffe-0.15'
cd /home/用户名/caffe
修改用户名
sudo cp Makefile.config.example Makefile.config
sudo gedit Makefile.config
#1.去掉这个注释,因为要使用cudnn(但是假如显卡太低级,兼容性不够,就用不了cudnn)
USE_CUDNN := 1
#2.加上这个注释(因为要使用cuda,所以就不用改)
# CPU_ONLY := 1
#3.去掉这个注释,因为以后经常会用到caffe 的 Python layer
WITH_PYTHON_LAYER := 1
#4. 阅读文件本身提示,然后根据自己的cuda根据该文档提示删去或者注释掉相应的版本:
CUDA_ARCH := #-gencode arch=compute_20,code=sm_20 \
#-gencode arch=compute_20,code=sm_21 \
#5. 将
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为(一般是这两条,具体路径可以自己看机器的hdf5文件夹路径):
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/lib/x86_64-linux-gnu/hdf5/serial
保存退出。
一些PyPI包需要安装:
sudo pip install -r $CAFFE_ROOT/python/requirements.txt
如果出错,就用下面命令
cat $CAFFE_ROOT/python/requirements.txt | xargs -n1 sudo pip install
cd $CAFFE_ROOT
mkdir build
cd build
cmake ..
make -j"$(nproc)"
make install
检查编译是否成功
#终端下进入python
python
import caffe (如果不报错则ok,ctrl + d退出Python)
cd caffe
sudo ./data/mnist/get_mnist.sh #下载数据
sudo ./examples/mnist/create_mnist.sh #把数据改造成lmdb格式
sudo ./examples/mnist/train_lenet.sh #训练模型
wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb" -O /tmp/cuda-repo.deb && sudo dpkg -i /tmp/cuda-repo.deb && rm -f /tmp/cuda-repo.deb
wget "http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb" -O /tmp/ml-repo.deb && sudo dpkg -i /tmp/ml-repo.deb && rm -f /tmp/ml-repo.deb
sudo apt-get update
sudo apt-get install --no-install-recommends git graphviz python-dev python-flask python-flaskext.wtf python-gevent python-h5py python-numpy python-pil python-pip python-scipy python-tk
DIGITS_ROOT=~/digits
git clone https://github.com/NVIDIA/DIGITS.git $DIGITS_ROOT
sudo pip install -r $DIGITS_ROOT/requirements.txt
sudo pip install -e $DIGITS_ROOT
进入digits目录,一般位于/home/用户名/digits/
输入
./digits-devserver
出现
DIGITS 6.1.1
浏览器输入http://localhost:5000/
开启digits图形界面