首先,去NVIDIA官网下载你电脑对应型号所需驱动。我当时下载的是(NVIDIA-Linux-x86_64-375.39.run),目前应该有最新的稳定版本,下载好之后,我们再进行后续步骤。
1. 禁用nouveau驱动
要先禁用Ubuntu 自带的显卡驱动,才能装Nvidia显卡驱动
按 Ctrl+Alt+F1
进入命令提示符,新建一个黑名单文件
先输入用户名,再输入密码,然后就可以输入下面的命令了
1 | sudo vi /etc/modprobe.d/blacklist-nouveau.conf |
然后再输入一下命令(这里使用的是vi,不熟悉vi的同学可以百度一下,只需要知道几个最基本的命令就可以了,比如插入,删除,保存,退出等等。)
1 | blacklist nouveau |
将上述两行输入完之后。就可以保存退出了(:wq)
执行以下命令
1 | sudo update-initramfs -u |
执行 lspci | grep nouveau查看是否有内容
1 | lspci | grep nouveau |
如果什么也没有,那就说明禁用成功了。
2. 安装显卡驱动
我安装的是(NVIDIA-Linux-x86_64-375.39.run)这个驱动
Ctrl+alt+F1,输入用户名,密码,进入命令行。
关闭图形界面
1 | sudo service lightdm stop |
安装驱动(当然先cd到驱动所在目录)
1 | sudo chmod 755 NVIDIA-Linux-x86_64-375.39.run //获取权限 |
在这里特别强调,安装NVIDIA驱动的时候:
(1)只有集显而没有独立显卡的时候才要加 –no-opengl-files,即输入:
sudo ./NVIDIA-Linux-x86_64-375.39.run --no-opengl-files
(是为了避免循环登录的问题)
(2)若有独立显卡的则不需要加 –no-opengl-files,
直接按照上面的语句运行即可。如果的确出现了循环登录的问题,再卸掉NVIDIA驱动重新安装即可。
驱动安装完成后
1 | sudo service lightdm start |
然后Ctrl+Alt+A7
返回正常界面
安装完成之后输入下面的命令
1 | nvidia-smi |
显示信息类似于下面的
3. 安装CUDA8.0
我安装的是cuda_8.0.61_375.26_linux.run CUDA Toolkit 8.0 - Feb 2017
cd到CUDA文件所在的目录
1 | sudo sh cuda_8.0.61_375.26_linux.run |
除了第二项“”是否安装显卡驱动“选择no之外,其他全部按照默认设定
安装过程显示如下信息
然后点空格键跳过这些说明,看到如下信息:
(Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?这一个必须选no,因为一般CUDA中带的驱动可能会老一些,选no这样就不会替代我们刚装好的驱动。)
1 | Do you accept the previously read EULA? |
到此CUDA安装完毕
设置环境变量
1 | sudo vi /etc/profile |
在文件最后加上下面两句(如果你安装时使用的是默认路径的话)
1 | export PATH=/usr/local/cuda-8.0/bin:$PATH |
使环境变量立即生效
1 | sudo ldconfig |
因为接下来安装Samples需要make,所以得先装好一些库和依赖
1 | sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx |
安装CUDA自带的Samples
1 | cd /usr/local/cuda/samples |
编译时间较久,编译完之后
1 | cd ./bin/x86_64/linux/release |
若出现显卡信息,则说明安装完成了
查看cuda版本:
1 | nvcc -V |
会输出cuda的版本信息。如果cuda安装不成功,需要卸载重装,卸载命令如下,
若完成以上步骤,说明安装成功!
4. 安装Cudnn 5.1
下载后解压,然后得到一个cuda文件夹,(cd到cuda文件夹所在目录)然后执行下列命令
1 | sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include |
然后按照以下步骤编译caffe,其中有报错,自己参考了这篇博客:
ubuntu16.04+gtx1060+cuda8.0+caffe安装、测试经历
以上都完成,才算成功安装好了cuda + cudnn
(若cuda没有安装成功,卸载方式如下)
1 | sudo /usr/local/cuda-7.5/bin/uninstall_cuda_7.5.pl |
(若NVIDIA驱动没有安装成功,卸载方式如下)
(1)如果安装的是从官网下载的驱动,则重新运行run文件来卸载:
1 | sudo ./NVIDIA-Linux-x86_64-390.25.run --uninstall |
(不放心的话,就再输入一遍下面的语句)
(2)如果使用的是apt-get 安装,则输入:
1 | sudo apt-get remove --purge nvidia* |
5. 安装MATLAB2016b
注意:Ubuntu16.04安装MATLAB 2016b后,会和系统文件冲突,具体冲突文件:
MATLAB中的: /usr/local/MATLAB/R2016b/sys/os/glnxa64/libstdc++.so.6
系统文件 : /usr/lib/x86_64-linux-gnu/libstdc++.so.6
下面我们会备份MATLAB中的libstdc++.so.6 ,并将其删除,从而让Ubuntu使用系统自带的libstdc++.so.6
文件。 这里在下面会有具体的操作方法。
6. 编译caffe
6.1 依赖包安装
1 | sudo apt-get install build-essential #必要的编译工具依赖 |
6.2 安装git,拉取caffe源码
进入你的工作目录,例如,我想把我的 caffe 放到 /home/lly/work/
目录下
1 | cd /home/lly/work/ |
6.3 编译caffe主体部分
终端输入 :
1 | cd /home/lly/work/caffe |
①将 USE_CUDNN := 1
取消注释,
② INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
后面打上一个空格 ,然后添加 /usr/include/hdf5/serial
如果没有这一句可能会报一个找不到hdf5.h的错误,然后下面一行加一个空格后也要添加 /usr/lib/x86_64-linux-gnu/hdf5/serial/lib
1 | INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include |
然后开始编译:
终端输入
1 | sudo make all -j4 |
测试编译是否成功:
先输入:
1 | sudo ldconfig /usr/local/cuda/lib64 |
然后再输入:
1 | sudo make test -j4 |
caffe主体部分编译成功,我们再来编译MATLAB接口部分,这样易于排除错误来源
添加MATLAB 安装路径
1 | MATLAB_DIR := /usr/local/MATLAB/R2016b |
因为MATLAB的库文件和Ubuntu系统的库文件有冲突,我们先把MATLAB的的文件备份一下,然后再把系统的文件添加到环境变量中,这样系统就会默认使用系统的动态文件了。
在/usr/local/MATLAB/R2016b/sys/os/glnxa64下 把 libstdc++.so.6 重命名为 libstdc++.so.6_back
1 | sudo mv libstdc++.so.6 libstdc++.so.6_back |
然后编译MATLAB接口:
1 | sudo make matcaffe -j8 |
1 | MEX matlab/+caffe/private/caffe_.cpp |
1 | sudo make mattest -j8 |
显示如下错误:
1 | cd matlab; /usr/local/MATLAB/R2016b/bin/matlab -nodisplay -r 'caffe.run_tests(), exit()' |
这依然是MATLAB文件与系统文件冲突的问题,我们还是需要备份MATLAB的文件,使用Ubuntu系统自带的来编译:
我解决的方案是链接到Matlab路径下:(注意,原来/usr/local/MATLAB/R2016b/bin/glnxa64/这个目录下是没有.8.0的这三个动态链接文件的,只有.7.5的版本的这三个文件)
1 | sudo ln -sf /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/MATLAB/R2016b/bin/glnxa64/libcudart.so.8.0 |
但依然还是报错:
1 | cd matlab; /usr/local/MATLAB/R2016b/bin/matlab -nodisplay -r 'caffe.run_tests(), exit()' |
简单粗暴的解决方法就是先将 /usr/local/MATLAB/R2016b/bin/glnxa64 中 以下三个文件备份,然后再删除其就可以了:
1 | sudo mv libopencv_core.so.2.4 libopencv_core.so.2.4.bak |
如果运行的时候还是会报找不到 libcudnn.so.5
的问题,就执行如下语句
1 | sudo ldconfig /usr/local/cuda/lib64/ # 在上面已经说明了 |
参考博客:http://blog.csdn.net/m0_37407756/article/details/70789271
解决MATLAB中的 MEvent. CASE! 错误
在控制台输出:
1 | !synclient HorizTwoFingerScroll=0 |
问题:MATLAB is selecting SOFTWARE OPENGL rendering.
https://www.jarviswang.me/?p=467
可以通过上面的操作,解决文件冲突问题。
问题:,MATLAB无法识别系统NVIDIA驱动,运行imshow() 都会报错:
1 | MATLAB has experienced a low-level graphics error, and may not have drawn correctly. |
这个问题可能是NVIDIA驱动没有装好,自己出现这样的问题是因为NVIDIA驱动安装的时候使用了 --no-opengl-files
没有装OpenGL文件造成的。卸载原来的驱动,再重新装一遍NVIDIA驱动既可以解决问题。
Ubuntu 卸载MATLAB
1.删除MATLAB的安装目录
1 | sudo rm -rf /home/lly/local/MATLAB/ |
(改成你自己的matlab路径)删除matlab文件夹。
2.在/home/lly(你的用户名)下面有.matlab 文件夹,删之这是一个隐藏文件夹,先要显示隐藏文件,才看得见。
1 | ls -a -l |
3.如果桌面有matlab快捷方式的话,把它删掉,
1 | sudo remove /usr/share/applications/matlab.desktop |
删除/usr/share/application /matlab.desktop,这里matlab.desktop改成你自己安装时起的名字。
4.查找/下含有matlab的所有文件
1 | sudo find / -name matlab |
7. 安装Anaconda 3
从 Anaconda官网 下载Python3.6版本,然后打开命令行进入安装包目录:
1 | cd ~/Download |
输入以下命令安装,由于我需要安装在/opt
目录,所以加上了sudo
1 | sudo bash Anaconda3-5.0.0-Linux-x86_64.sh |
会提示一下信息
1 | Welcome to Anaconda3 5.0.0 |
输入回车继续安装,接下来提示一些授权信息,输入yes
继续
1 | Do you accept the license terms? [yes|no] |
接下来指定安装目录,不指定的话会安装到默认路径下。
1 | Anaconda3 will now be installed into this location: |
然后稍等一会,提示是否要将Anaconda的安装路径添加到PATH环境变量中,输入yes
就好了。
1 | installation finished. |
若输入no
,需要手动在.bashrc
文件中添加以下内容,然后source ~/.bashrc
1 | export PATH="/opt/anaconda3/bin:$PATH" |
现在在终端中启动Python,发现已经替换成Anaconda的Python了
1 | lly@lly:~$ python |
若没有生效,则终端输入,然后重开一个终端即可生效。
1 | source ~/.bashrc |
输入以下命令可以开启anaconda-navigator
,这里面集成了Anaconda自带的一些工具。
1 | anaconda-navigator |
补充知识 conda基本命令 (具体细节可参考印象笔记)
- conda基本命令:
conda --version
查看当前Anaconda版本conda info -e
查看当前环境版本conda create -n python27 python=2.7
创建一个python2.7版本的开发环境activate python27
切换到 python2.7的版本分支(环境)deactivate
切换回 root分支(环境)-
conda remove -n python27 --all
删除一个分支(环境)conda create -n clonedpython27 --clone python27
克隆python27这个分支,并将新分支命名为clonedpython27
8. 使用Anaconda安装 Tensorflow
在conda环境中安装tensorflow的好处是可以便捷的管理tensorflow的依赖包。
8.1 建立一个tensorflow的运行环境
注意:这里最好通过管理员方式打开
Anaconda Prompt
进行安装,这样可以避免很多错误。
建立一个 命名为tensorflowde
的conda 环境,指定Python版本是3.5 。
1 | Python 3.5 |
如果想安装其他环境下的tensorflow 则自己选择Python版本即可。
1 | Python 2.7 |
注意,不要重复执行多次创建名为tensorflow的conda环境。以上语句选择自己需要Python版本的执行一条即可。
8.2 在conda环境中安装tensorflow
在conda环境中安装tensorflow的好处是可以便捷的管理tensorflow的依赖包。分为两个步骤:激活上一步建立的名为tensorflow的conda环境;用conda或者pip工具安装Tensorflow,作者选择的是pip方式。
- 查看当前环境
1 | conda info -e |
可以看到,我们当前所在的是默认的base环境
- 激活名为tensorflow 的 conda环境:
1 | source activate tensorflow |
然后可以根据需要安装的不同的tensorflow版本选择对应的一条环境变量设置export语句(操作系统,Python版本,CPU版本还是CPU+GPU版本)这里我们选择Ubuntu操作系统,Python3.5,GPU版本 1.2版本的tensorflow进行安装。参考博客 官网教程
(注意:这里你要能找到自己对应cuda 和 cudnn版本的源才行)
作者自己直接使用pip 进行安装了tensorflow-gpu==1.2版本的
1 | pip install tensorflow-gpu==1.2 |
如果提示连接网络失败,则根据提示更新一下pip再进行安装tensorflow即可。
期间自己忽略了自己cuda8.0和cudnn5.1版本问题,直接默认安装了Tensorflow官网教程中的源安装的,当时是1.6版本的tensorflow,然后在测试tensorflow的时候就会报错。类似如下错误:
1 | libcudnn.so.8:cannot open sharedobject file: No such file or directory |
然后降级到了1.2版本才正常使用,降级方法:参考
1 | pip uninstall tensorflow-gpu |
- 测试
在tensorflow的conda环境中进行测试,命令行输入python,进入tensorflow的python环境
1 | (tensorflow) lly@lly:~$ python |
然后输入:
1 | import tensorflow as tf |
如果没有报错,输出了 b'Hello, TensorFlow!'
并输出一些警告信息,则说明安装成功:
1 | import tensorflow as tf |
9. 安装java jdk
我们要安装PyCharm必须先安装java jdk才行,具体安装命令如下:
安装命令:
1 | sudo add-apt-repository ppa:webupd8team/java |
安装过程中会出现oracle license对话框,选择 是
安装完成后,输入 java -version
或者 javac -version
查看是否安装成功。得到类似以下输出,表示安装成功。
1 | lly@lly:~$ java -version |
10. 安装Pycharm
到 Pycharm官网 下载Community免费版
终端进入下载目录,并解压:
1 | cd Downloads/ |
运行解压文件中bin目录下的pycharm.sh 文件
1 | cd pycharm-community-3.4.1/bin/ |
安装过程中询问是否导入settings,选择不导入—>OK,然后全部是默认,根据提示选择。
设置快捷方式
在Ubuntu下,每次都要找到 pycharm.sh所在的文件夹,执行./pycharm.sh,非常麻烦。最好能创建一个快捷方式。Ubuntu的快捷方式都放在/usr/share/applications,首先在该目录下创建一个Pycharm.desktop
1 | sudo gedit /usr/share/applications/Pycharm.desktop |
然后输入以下内容,注意Exec和Icon需要找到正确的路径:
1 | [Desktop Entry] |
然后就可以在自己的应用中找到Pycharm了。
10.1 在PyCharm中配置TensorFlow环境
要在pycharm下使用tensorflow,要设置好pycharm下解释器interpreter的路径File --> Setting --> Project --> Project Interpreter
,这里也就是tensorflow的路径,如下图所示:
在PyCharm中测试该代码
1 | import tensorflow as tf |
运行后会提示警告,但这个警告并没有影响
1 | W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations. |
我们可以通过在上面代码之前,添加两条语句,忽略掉警告
1 | ## 加上这两句,可以不显示警告 |
11. Reference
- https://zhuanlan.zhihu.com/p/27168325
- http://blog.csdn.net/wopawn/article/details/52302164
- http://blog.csdn.net/yhaolpz/article/details/71375762
- http://blog.csdn.net/qq_26093511/article/details/78991101
- http://blog.csdn.net/as923889498/article/details/78513436
- ubuntu下 编译Caffe的Matlab接口
- Ubuntu16.04+cuda8.0+opencv3.0.0 caffe编译的那些坑
- https://github.com/BVLC/caffe/issues/3934
- caffe编译遇到的问题(持续更新)
- Ubuntu 16.04 安装Anaconda3
- http://blog.csdn.net/nxcxl88/article/details/52704877
- http://blog.csdn.net/dabokele/article/details/53013921
- 官网Tensorflow使用Anaconda
- Tensorflow 版本不对报错