一、开发环境

操作系统: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

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/letsplayball/p/16251741.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!