Ubuntu16.04 安装显卡驱动+cuda8.0+cudnn-v6+TensorFlow-gpu

匿名 (未验证) 提交于 2019-12-03 00:27:02

显卡:GTX1050Ti 2G

英伟达显卡和cuda相关安装文档:

https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#abstract
http://us.download.nvidia.com/XFree86/Linux-x86_64/390.59/README/installdriver.html#OtherFeaturesOfd7638
http://wiki.ubuntu.org.cn/index.php?title=NVIDIA&variant=zh-cn
https://wiki.gentoo.org/wiki/NVidia/nvidia-drivers

一、Ubuntu内核版本降级

1、查看已安装内核:

sudo dpkg --get-selections |grep linux-image

示例:

linux-image-4.4.0-21-genericinstall linux-image-4.4.0-66-generic deinstall linux-image-4.4.0-70-generic deinstall linux-image-4.4.0-71-generic install linux-image-4.4.0-72-generic install

2、查看当前使用内核版本

uname -r

如果显示:4.13.0-36-generic


tip:删除当前版本重启会使用低一级的已安装内核,如果是最后一个内核版本删除之后重启会进入BIOS界面

sudo apt-get remove linux-image-4.4.0-75-generic
sudo apt-get install linux-image-4.4.0-75-generic

上面的命令是在线安装,也可以手动下载内核后,安装内核。看这篇文章:https://blog.csdn.net/ytusdc/article/details/79675410


sudo apt-get install linux-headers-$(uname -r)
查看内核头文件,
dpkg-query -s linux-headers-$(uname -r)

参考链接:1、http://blog.sina.com.cn/s/blog_413d250e0102xaoc.html

http://blog.sina.com.cn/s/blog_16b01ecd40102xkrf.html

二、安装显卡驱动

1、禁用nouveau驱动,参看以前写的文章。

寻找合适的驱动版本

ubuntu-drivers devices

2、安装显卡驱动,基本过程一致,但是在安装run文件时有些不同。

nvidia-smi 查看显卡是否安装成功,我的nvidia-settings命令始终报错,但是其他正常,只是电脑不能调节亮度

三、安装cuda

  sudo ./cuda.run --no-opengl-libs




四、安装TensorFlow

具体安装时少什么安装什么。

安装TensorFlow,注意这里安装的事1.4版本的,因为我们用的cuda版本是8.0的,1.5以上版本的TensorFlow需要cuda9.0.

sudo pip install tensorflow-gpu==1.4   # 安装1.4版本的 sudo pip install tensorflow-gpu          # 默认安装的事最新版本的


遇到的问题:

1、安装TensorFlow时会提示更新pip,pip更新到10版本之后,安装命令会报以下错误

错误: ImportError: cannot import name ‘main‘

找到这个pip文件做以下更改,cd /usr/bin,具体位置根据报错修改,把

from pip import main if __name__ == '__main__':     sys.exit(main())

改为:

from pip import __main__ if __name__ == '__main__':     sys.exit(__main__._main())

2、问题描述: error while loading shared libraries: libcudart.so.8.0: cannot open shared object file: No such file or directory

解决办法:

先试一下命令

sudo ldconfig /usr/local/cuda/lib64 
如果依然报错,则执行下面的命令后,再执行一遍这个命令

首先确认/etc/profile中的路径包含了cuda8.0的安装路径及相应的库文件

export PATH=$PATH:/usr/local/cuda-8.0/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64 export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-8.0/lib64

使配置文件生效:

source /etc/profile

若仍提示相同的错误,则执行以下命令,将相应的库文件复制到/usr/lib

sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig sudo ldconfig /usr/local/cuda/lib64    #执行命令

TensorFlow 安装完成后,安装faster-rcnn报错

1.编译过程中 nsync_cv.h:No such file or directory,使用python虚拟环境会存在该问题。
解决:根据提示路径找到mutex.h文件,修改其中代码

#include "nsync_cv.h" #include "nsync_mu.h"

改为

#include "external/nsync/public/nsync_cv.h" #include "external/nsync/public/nsync_mu.h"
再打开lib文件夹下的make.sh文件添加下述内容,重新编译即可

NSYNC_INC=$TF_INC"/external/nsync/public"

2.运行demo过程中遇到的错误

undefined symbol: _ZTIN10tensorflow8OpKernelE
这个问题卡得最久,因为make.sh文件中缺少了TF_LIB编译参数,还需要添加 -D_GLIBCXX_USE_CXX11_ABI=0
解决:

(1)修改make.sh添加TF_LIB,并修改相应的编译参数

TF_LIB=$(python-c 'import tensorflow as tf; print(tf.sysconfig.get_lib())')
g++-std=c++11 -shared -o roi_pooling.so roi_pooling_op.cc-D_GLIBCXX_USE_CXX11_ABI=0 \ roi_pooling_op.cu.o-I $TF_INC -L $TF_LIB -ltensorflow_framework -D GOOGLE_CUDA=1 \ -fPIC$CXXFLAGS -lcudart -L $CUDA_PATH/lib64

4.缺少yaml库

查了网上的方法,都是这样的
sudo apt-get install python-yaml
我试了,但是在虚拟环境中还是无法import,最后直接下载库,手动安装。注意,是在虚拟环境中,通过pythonsetup.py install 进行安装。


yaml 下载地址 http://pyyaml.org/download/pyyaml/PyYAML-3.12.tar.gz

参考链接:

https://www.cnblogs.com/danpe/p/7825357.html

https://blog.csdn.net/zhongxinleishi/article/details/78972944

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!