标签:Tensorflow libcudart so.10 Terminal cuda PyCharm GPU Pycharm CUDA
一、开发环境
操作系统: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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。