显卡: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