禁用nouveau:
sudo gedit /etc/modprobe.d/blacklist.conf
- 1
在最后一行添加:
blacklist nouveau
之后,执行命令:
sudo update-initramfs -u
电脑重启之后执行
lsmod | grep nouveau #没有输出,即说明安装成功
卸载已安装的CUDA
请参考Ubuntu16.04下CUDA和driver的卸载(.run安装)
判断是否需要卸载及如何卸载。
安装CUDA8.0+driver(deb)
使用.deb方式安装不仅快捷方便,也是官方推荐方式,比起.run文件安装会出现各种问题,.deb安装十分流畅。
1.确认具备安装条件
这部分cuda安装官方tutorial中写的非常清晰,如果不确定自己的系统条件是否具备安装条件,请参考#pre-installation actions目录下的#2.1至#2.4部分
2.下载和安装.deb文件
(1) 在如下CUDA Toolkit下载界面,选择右下角的Legacy Releases
。
(2)跳转到所有releases版本界面如下,选择CUDA Toolkit 8.0 GA2[Feb 2017]
。
(3)跳转到CUDA8.0 GA2下载界面如下,依次按照自己的系统要求选择,获取我们需要的deb(local)安装文件下载。
(4)确认deb文件下载没问题,用以下命令求md5值,与[MD5 checksum posted}(http://developer.nvidia.com/cuda-downloads/checksums)中对比,确认一致即表示下载无误。
$ md5sum cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
(5)deb文件安装
依次运行以下命令
$ sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
$ sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get install cuda
Tips:
- 第一行命令中cuda-repo-<distro>_<version>_<architecture>.deb
就是你下载的deb文件,在这里就是cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
文件;
- 第二行命令中/var/cuda-repo-<version>/7fa2af80.pub
中间的cuda-repo-<version>
用Tab键补齐就可以
(6)配置环境变量。
方法一:
$ sudo gedit ~/.bashrc
# 在打开的文件中添加两行内容
# 第一行是export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
# 第二行是LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# 点击保存后关闭文件
$ source ~/.bashrc
方法二(这个方法有时会失效,所以推荐方法一):
$ export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
$ source ~/.bashrc
(7)重启系统
3. 确认已成功安装
3.1确认驱动安装成功
$ cat /proc/driver/nvidia/version
3.2确认CUDA安装成功
$ cuda-install-samples-8.0.sh ~ #cuda samples安装到根目录下
#执行完改命令后会在根目录下产生一个`NVIDIA_CUDA-8.0_Samples`目录
$ cd NVIDIA_CUDA-8.0_Samples
$ make -j8 #-j8表示8线程用于加速
# 运行完之后如果过程不报错(有warning没关系)
# 则会在目录'NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release'下生成一个`deviceQuery`文件
$ cd ~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release/
$ ./deviceQuery
上述命令运行完之后,本机返回信息如下,如果最后一行出现Result = PASS
,就是CUDA安装成功。
./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "GeForce GTX 950M" CUDA Driver Version / Runtime Version 9.0 / 8.0 CUDA Capability Major/Minor version number: 5.0 Total amount of global memory: 2003 MBytes (2100232192 bytes) ( 5) Multiprocessors, (128) CUDA Cores/MP: 640 CUDA Cores GPU Max Clock rate: 1124 MHz (1.12 GHz) Memory Clock rate: 1001 Mhz Memory Bus Width: 128-bit L2 Cache Size: 2097152 bytes Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096) Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 1 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled Device supports Unified Addressing (UVA): Yes Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 950M Result = PASS
之后可以用nvidia-smi
,nvidia-settings
,nvcc -V
查看本机相关信息。
安装cuDNN6.0
1.下载.tgz文件
(1)在cuDNN下载界面,点击’download’。
(2)在跳转到的下载页面登入自己的账户密码,勾选I Agree To the Terms of the cuDNN Software License Agreement
,在显示的多个版本中选择Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0
,选择其中的第3项cuDNN v6.0 Library for Linux
,会自动下载cudnn-8.0-linux-x64-v6.0.tgz
压缩文件
2.从.tgz文件安装
把cudnn-8.0-linux-x64-v6.0.tgz
文件放到根目录下,依次运行以下命令:
$ tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz #解压
$ 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* #改变所有用户权限为只读
Anaconda3的安装
anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。可以帮助python开发者省去很多安装科学包的工作。下面我们就来简单介绍如何在Ubuntu16.04环境下安装Anaconda3。
首先,去Anaconda的下载地址下载对应python版本的Anaconda安装文件。(我这里下载的是python3.6的版本)
下载完成后,才命令行进入到Anaconda3-5.0.1-Linux-x86_64.sh
文件所在的路径下:
zerozone@zerozone-ubuntu:~/Downloads$ sudo bash Anaconda3-5.0.0-Linux-x86_64.sh
Welcome to Anaconda3 5.0.0
In order to continue the installation process, please review the license agreement.
Please, press ENTER to continue
>>>
然后,根据提示按回车继续。
接下来,它会提示你是否接受协议,这里直接输入yes,再按回车即可(不要直接按回车,这样默认是no)
Do you accept the license terms? [yes|no]
[no] >>> yes
接下来会提示你指定安装路径,这里可以使用默认的,也可以自己指定(我这里自己指定到了一个文件夹下面)
Anaconda3 will now be installed into this location: /home/zerozone/anaconda3 - Press ENTER to confirm the location - Press CTRL-C to abort the installation - Or specify a different location below - [/home/zerozone/anaconda3] >>> /home/zerozone/Software/anaconda3
然后就是等待安装进程完成,完成后会提示你是否要将Anaconda的安装路径添加到PATH环境变量中,输入yes就好了。
installation finished.
Do you wish the installer to prepend the Anaconda3 install location
to PATH in your /home/hj/.bashrc ? [yes|no]
如果输入no,那么我们就需要自己手动在.bashrc文件中添加export PATH="/opt/anaconda3/bin:$PATH"
,然后再在命令行中输入source ~/.bashrc
至此,Anaconda就安装好了,在测试Anaconda是否安装成功之前,我们需要先关闭当前的终端,重启开启另一个终端后,才可以进行测试,输入python来查看是否安装成功
$ python
Python 3.6.2 |Anaconda, Inc.| (default, Sep 22 2017, 02:03:08)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
编译安装opencv3.3.0
- sudo apt-get install --assume-yes libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
- sudo apt-get install build-essential cmake git
- sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
- mkdir build #新建一个build文件夹,编译的工程都在这个文件夹里
- cd build
- cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -D BUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON_EXECUTABLE=/path/to/anaconda3/bin/python3 -DPYTHON_INCLUDE_DIR=/path/to/anaconda3/include/python3.6m -DPYTHON_LIBRARY=/path/to/anaconda3/lib/libpython3.6m.so -DPYTHON_NUMPY_INCLUDE_DIRS=/path/to/anaconda3/lib/python3.6/site-packages/numpy/core/include ..
- make -j4
- #开始编译
- sudo make install
- sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
- sudo ldconfig
然后在终端输入:
- sudo ldconfig -v
是这个链接错误,然后在终端输入:
- sudo ln -sf /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so.6.0.21 /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so.6
问题就解决了。。。。。。。。。。。。。
编译完成后,把编译出来的cv2.cpython-36m-x86_64-linux-gnu.so库拷到anaconda的python库包下;其实不用sudo make install,opencv就已经可以用了,python的warpper都有。cp /home/fier/opencv-3.3.0/build/lib/python3/* /home/fier/anaconda3/lib/python3.6/site-packages/
终端输入python,import一下cv2
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>
编译caffe
- sudo apt-get update
- sudo apt-get install -y build-essential cmake git pkg-config
- sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
- sudo apt-get install -y libatlas-base-dev
- sudo apt-get install -y libboost-all-dev
- sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
- sudo apt-get install -y python-pip
- sudo apt-get install -y python-dev
- sudo apt-get install -y python-numpy python-scipy
- git clone https://github.com/BVLC/caffe.git //从github上git caffe
- cd caffe //打开到刚刚git下来的caffe
- sudo cp Makefile.config.example Makefile.config //将Makefile.config.example的内容复制到Makefile.config
- //因为make指令只能make Makefile.config文件,而Makefile.config.example是caffe给出的makefile例子
- sudo vim Makefile.config //打开Makefile.config文件
- #取消以下注释
- USE_CUDNN := 1
- OPENCV_VERSION := 3
- WITH_PYTHON_LAYER := 1
- #将Python有关目录修改为
- PYTHON_LIBRARIES := boost_python3 python3.6m #这里需要建立boost_python3链接,方法见参考资料
- ANACONDA_HOME := /path/to/anaconda3 #改成自己anaconda的路径
- PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
- $(ANACONDA_HOME)/include/python3.6m \
- $(ANACONDA_HOME)/lib/python3.6/site-packages/numpy/core/include
- PYTHON_LIB := $(ANACONDA_HOME)/lib
- LINKFLAGS := -Wl,-rpath,$(ANACONDA_HOME)/lib
- #最后修改INCLUDE_DIRS,LIBRARY_DIRS
- 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
- 然后修改makefile文件
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
然后再大概181行的地方做修改
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
替换为
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 opencv_core opencv_imgproc opencv_imgcodecs opencv_highgui
编辑/usr/local/cuda/include/host_config.h,将其中的第115行注释掉:
将
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
之后
- make all -j4
- make test -j4
- make runtest
- make pycaffe
python3编译caffe错误:cannot find -lboost_python3
https://blog.csdn.net/songyu0120/article/details/77895373
针对Python3编译caffe时make all
的时候出现了如下错误
cannot find -lboost_python3
- 1
首先去/usr/lib/x86_64-linux-gnu
目录下查看是否有python3版本的libboost,如果有类似libboost_python35.so
但是没有libboost_python3.so
则需要手动建立连接。 查看连接: ls -l
方法为:
sudo ln -s libboost_python-py35.so libboost_python3.so
m//home/fier/anaconda3/lib/libpng16.so.16:对‘inflateValidate@ZLIB_1.2.9’未定义的引用
sudo ln -s /home/yali/anaconda2/lib/libpng16.so.16 libpng16.so.16 (方法不行)
正确解决方法:
在 Makefile.config 中,加入下一句
LINKFLAGS := -Wl,-rpath,$(HOME)/anaconda/lib
错误 No module named 'caffe':
sudo gedit ~/.bashrc
export PYTHONPATH=/opt/modules/caffe/python:$PYTHONPATH
source ~/.bashrc
ImportError: No module named caffe
解决方法1:
首先新建一个py文件,命名为_init_paths.py 里面写入如下代码:
import os.path as osp
import sys
def add_path(path):
if path not in sys.path:
sys.path.insert(0, path)
this_dir = osp.dirname(__file__)
#Add caffe to PYTHONPATH
caffe_path = osp.join(this_dir, '..', 'caffe', 'python') #注意路径:this_dir表示当前路径,‘..’返回上一层的caffe所在的路径,根据自己的caffe所在路径修改
add_path(caffe_path)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
每次使用caffe的时候在 import caffe 前面加上 import _init_paths 即可:
import _init_paths # _init_paths.py 和当前命令放在同一路径下
import caffe
- 1
- 2
解决方法2:
caffe_root = '/home/mmt/Desktop/caffe/)'
import sys
sys.path.append("/home/mmt/Desktop/caffe/python")
sys.path.append("/home/mmt/Desktop/caffe/python/caffe")
import caffe
ImportError: No module named google
sudo chmod 777 -R anaconda3/
conda install protobuf
Ubuntu16.04+cuda8.0+opencv3.1+caffe+anaconda安装,双显卡
Ubuntu16.04+cuda8.0+caffe安装教程
注意:安装cuda时,不要修改/etc/profile,所有的环境变量均写在~/.bashrc里,修改前者容易出现系统错误。
运行cuda sample出现找不到GL*.h的情况,安装opengl可以解决。
ubuntu 16.04 上opengl 的安装以及例子程序编译执行
有关opencv安装的问题
【OpenCV】编译OpenCV时,FFmpeg或ippicv下载不成功的解决方案
opencv/opencv_3rdparty
ubuntu16.04安装opencv3.1.0问题
Install OpenCV for python3
Ubuntu下编译caffe
error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
出现boost_python相关问题时参考,建立libboost_python3.so时,在/usr/lib/x86_64-linux-gnu目录下即可:
在 python3.5 下使用 Caffe Using Caffe with Python3.5
出现undefined reference to `inflateValidate@ZLIB_1.2.9'时参考:
Caffe 编译错误记录
出现Warning! ***HDF5 library version mismatched error***可以参考
在Matlab中使用Caffe出现HDF5 library version mismatched error的解决办法
在https://support.hdfgroup.org/ftp/HDF5/releases/找到适合的HDF5版本下载安装。
建议下载安装错误提示中header的版本,并且安装到提示中General Information 下 Installation point 的位置。