电脑配置:
系统:ubuntu16.04
显卡:GTX1050Ti
1.禁用nouveau
sudo gedit /etc/modprobe.d/blacklist.conf
在打开的blacklist.conf最后两行分别输入blacklist nouveau和 optionsnouveau modeset=0
执行 sudo update-initramfs -u
2.安装nvidia显卡驱动
(1)第一种安装方式
a.在官网http://www.nvidia.com/Download/index.aspx?lang=en-us下载对应版本的驱动NVIDIA-Linux-x86_64-384.98.run
b.ctrl+Alt+F1进入文字界面
c.sudo apt-get remove –purge nvidia* 若有旧的驱动则卸载
d.输入sudoservice lightdm stop 停用 X service
e.进入相应目录运行a中下载的驱动./NVIDIA-Linux-x86_64-384.98.run –no-opengl-files,加入–no-opengl-files防止安装驱动后无法登陆图形界面
f.安装成功后sudoservice lightdm start 启用 X service
g.sudo nvidia-smi查看显卡和GPU信息
若未出现process:里面GPU没有相关信息,则驱动可能安装失败。
(2)第二种安装方式
若采用上述(1)装过一次,则应该卸载刚安装的驱动
--uninstall./NVIDIA-Linux-x86_64-384.98.run
可以再运行一次
sudo apt-get remove –purge nvidia*卸载旧的驱动
a.采用sudo apt-cache search nvidia* 搜索驱动
b.采用sudo apt-get install nvidia-384安装一个nvidia显卡驱动
c.若安装重启后发现分辨率变得太小,则参考https://www.douban.com/note/262885853/
更改分辨率sudo gedit /etc/X11/xorg.conf
HorizSync 31.5 - 61.0 %这个地方修改
VertRefresh 50.0 - 75.0 %这个地方修改
Modes "1920×1080" % 修改
但是我的没改回来,而是变为了1440*900,不知道是不是HorizSync和VertRefresh改的不对
3.安装cuda8.0
(1)在上的百度云资源进行下载cuda8.0.run得到cuda_8.0.61_375.26_linux.run
(2)输入命令sudo chmod 777 cuda_8.0.44_linux.run
sudo ./cuda_8.0.61_375.26_linux.run
安装时询问Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?选N,因为之前已经装过了nvidian的驱动,不再安装更低的版本了
(3)将cuda加入环境变量,参考
a.打开~/.bashrc文件:
sudo gedit ~/.bashrc
~/.bashrc尾部:
7.5/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
/etc/profile文件中添加CUDA环境变量:
sudo
PATH=/usr/local/cuda/bin:$PATH2
, 执行下列命令, 使环境变量立即生效:
source /etc/profile
lib库路径,在 cuda.conf
sudo gedit /etc/ld.so.conf.d/cuda.conf
在文中加入下面内容:
/usr/local/cuda/lib64
执行下列命令使之立刻生效:
sudo
(4)测试
cd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery
make
sudo ./deviceQuery 会输出GPU的相关信息
(5)cudnn安装
在上的百度云资源进行下载cudnn5.1.10(cuda8.0)得到
cudnn-8.0-linux-x64-v5.1.tgz,采用tar -xzvf ***.tar.gz命令解压缩
cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include #复制头文件
cd lib64
sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
//复制的时候可能破坏链接关系,重新建立软链接
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.5.10.1
sudo ln -sf libcudnn.so.5.10.1 libcudnn.so.5
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig
4.安装opencv
(1)第一种安装方式,参考
在官网上下载opencv并解压缩
安装cmake
sudo apt install cmake
配置cmake
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
编译
sudo make
安装opencv
sudo make install
不自己安装,也可以采用别人写的脚本https://github.com/jayrambhia/Install-OpenCV
(2)第二种安装方式
参考
参考
参考
apt-get update
apt-cache search opencv
sudo apt-get install libcv-dev
(3)测试
1 sudo apt-get install python-opencv
2 sudo apt-get install python-numpy
可以在python中import cv2,并写个简单的小代码测试下
img = cv2.imread("1.jpg")
cv2.imshow("1",img)
cv2.waitKey(0)
3. caffe配置
参考
参考http://www.linuxidc.com/Linux/2016-12/138870.htm
安装相关库
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 libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
USE_CUDNN := 1
若使用的opencv版本是3的,则OPENCV_VERSION := 3
若要使用python来编写layer,则WITH_PYTHON_LAYER := 1
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
(4)修改makefile文件()
打开makefile文件,做如下修改:(这个不知道有没有用,这一步感觉没作用)
将:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
接下来是针对安装opencv3.0.0版本的同学而言的,对于3.0.0之前的版本不需要修改:
在位置((LIBRARIES+= glog gflags protobuf leveldb snappy lmdbboost_system hdf5_hl hdf5 m opencv_coreopencv_highgui opencv_imgproc opencv_imgcodecs))处添加opencv_imgcodecs
这一步非常重要,否则编译后会出现错误如下:
CXX/LD-o.build_release/tools/convert_imageset.bin
.build_release/lib/libcaffe.so:undefined reference tocv::imread(cv::String const&,int)'.build_release/lib/libcaffe.so: undefined referencetocv::imencode(cv::String const&, cv::_InputArray const&,std::vector >&, std::vector > const&)'
原因就是opencv3.0.0把imread相关函数放到imgcodecs.lib中了,而非原来的imgproc.lib。
(If you input "make all",the problem is the same again.But if you delete all the file in build(rm -rf ./build/*) before "make all"(I use make clean ),you will success.I just success)
make all
make test
make runtest
出现各种库缺少的话,将其拷贝进入usr/lib中
make pycaffe
export PYTHONPATH=/home/caffe-master/python:$PYTHONPATH
import caffe
出现错误No module named skimage.io
1. sudo pip install scikit-image
2.sudo apt-get install python-skimage
出现错误No module named google.protobuf.internal,可以根据下面重新安装依赖包
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 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
sudo apt-get install protobuf-c-compiler protobuf-compiler
sudo apt-get install libatlas-base-dev1
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
1.将终端定位到Caffe根目录
cd ~/caffe
2.下载MNIST数据库并解压缩
./data/mnist/get_mnist.sh
3.将其转换成Lmdb数据库格式
./examples/mnist/create_mnist.sh
4.训练网络
./examples/mnist/train_lenet.sh