Pycharm中启动Tensorflow项目找不到libcudart.so.10.1
作者:互联网
一、开发环境
操作系统:Ubuntu 18.04 LTS
显卡:NVIDIA RTX 2080 Super
显卡驱动:专有驱动450.142.00
CUDA:10.2
PyCharm版本:2020.2.5
二、问题描述
最近在GitHub上闲逛,Git了一个YOLOv3目标检测的项目。
Git下来并且配置好环境开始运行,发现TensorFlow找不到动态库libcudart.so.10.1。
开始能够想到的原因是我在本地安装的CUDA版本是10.2,项目的Tensorflow版本是2.1.0,两者可能不适配。
我首先尝试在COCO数据集上运行模型训练算法,发现是可以运行的,只是训练的速度实在有点慢。
看了下输出信息,发现TensorFlow没有找到物理GPU。
我继续在Pycharm的Python Console上面测试Tensorflow能否找到GPU:
import tensorflow as tf
print(tf.test.is_gpu_available())
结果显示False
,的确这里的TensorFlow2.1.0没有找到GPU。
于是我将原来的CUDA卸载,重新安装了10.1版本,并且安装了对应的cuDNN。
通过Anaconda创建了新的虚拟环境,安装了Tensorflow2.1.0。
在新的虚拟环境下通过系统的Terminal打开Python,测试了刚才的Python代码。
发现Tesorflow是可以找到物理GPU,但是接下来奇怪的事情发生了。
我在PyCharm里配置了刚才的虚拟环境,然后打开内置的Terminal,再次测试刚才的代码,发现Tensorflow又找不到物理GPU了!
到这里我基本可以确定,问题一定在PyCharm上,而不是TensorFlow、CUDA、cuDNN的版本对应关系。
三、解决办法
方法一:创建动态连接库
在Pyharm内置的Terminal中输入以下命令:
sudo ldconfig /usr/local/cuda/lib64
该命令等同于打开文件/etc/ld.so.conf.d/cuda.conf
,在其中加入路径/usr/local/cuda/lib64
,然后输入以下命令使得动态库生效:
sudo ldconfig
不论采用哪一种,每次启动Pyharm的时候都需要在Terminal中操作一遍。
方法二:在PyCharm中修改运行配置
在File -> Settings -> Build, Execution, Deployment -> Console -> Python Console -> Environment -> Environment variables
中,设置LD_LIBRARY_PATH=/usr/local/cuda-xx.x/lib64
四、原因分析
应该是我PyCharm项目所在目录和CUDA的安装目录不在同一个硬盘(我的开发环境安装了双硬盘),导致PyCharm找不到CUDA的环境变量。
参考博客:pycharm找不到libcudart.so.10.0
标签:Tensorflow,libcudart,so.10,Terminal,cuda,PyCharm,GPU,Pycharm,CUDA 来源: https://www.cnblogs.com/letsplayball/p/16251741.html