在仅安装CPU版本的tensorflow上,无法加载动态库'cudart64_101.dll'

160

我刚刚通过pip install tensorflow安装了最新版本的Tensorflow,但是每当我运行程序时,我会收到以下日志信息:

W tensorflow/stream_executor/platform/default/dso_loader.cc:55] 无法加载动态链接库'cudart64_101.dll'; dlerror:找不到cudart64_101.dll

这是有问题的吗?我该如何修复错误?

19个回答

3

TensorFlow GPU 2.2和2.3 Nightly

(同时需要CUDA Toolkit 11.0 RC)

为了解决与原帖作者相同的问题,我只需在我的磁盘中找到cudart64_101.dll文件(在我的情况下是C:\Program Files\NVIDIA Corporation\NvStreamSrv),并将其添加为环境变量(即将值C:\Program Files\NVIDIA\Corporation\NvStreamSrv)cudart64_101.dll添加到用户的环境变量Path中)。


2
这只是一个警告和信息提示,CUDA库未被找到。
如果您正在使用NVIDIA GPU,可以参考如何安装缺失的文件。
如果您不使用NVIDIA GPU,或者仅想忽略这些I和W消息,可以在您的代码开头添加以下两行:
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

您可以在TensorFlow日志记录中了解有关TF_CPP_MIN_LOG_LEVEL的更多信息。

enter image description here


2

下载 CUDA Toolkit 11.0 RC

为了解决这个问题,我在我的硬盘上找到 cudart64_101.dll 文件(位于 C:\Program Files\NVIDIA Corporation\NvStreamSrv),并将其添加到用户环境变量 Path 中,即添加值(C:\ Program Files \ NVIDIA \ Corporation \ NvStreamSrv)cudart64_101.dll。


2
这可能是由您所使用的Python版本引起的问题。我曾经从微软商店中安装了 Python 3.7,也遇到了这个错误,但是当我切换至 Python 3.10 后问题得到了解决。

我怀疑问题出在你使用了Microsoft Store的Python上。我模糊地记得它有一些问题。 - GPhilo
是的,我刚刚在https://dev59.com/trnoa4cB1Zd3GeqPWb4e#63547977中回答了这个问题。但是我记得我曾经遇到过另一个版本的Python的问题,那是由于在3.8中dll加载方式的变化引起的。 - Cash Lo

1
我在使用tensorboard时遇到了一个错误,这是在我更新GPU驱动程序后发生的。问题在于我是从cmd中运行tensorboard的,而我没有安装任何CUDA,因为我正在使用anaconda。当你使用anaconda安装TensorFlow时,所有必需的CUDA和Cudnn文件都会被下载,如果你没有在安装TensorFlow的anaconda环境中使用它,你会错过这些文件。

enter image description here

解决方案

* 只需从Anaconda打开TensorBoard

1-或者只需下载最新的Cuda工具包并将其添加到路径中

https://developer.nvidia.com/cuda-toolkit-archive

请使用以下步骤: 1- 打开命令行 2- 输入以下命令:conda install -c anaconda cudatoolkit 3- 然后重新启动您的电脑。

1
我在使用pip和conda混合安装tensorflow 2.3时遇到了问题。(当时我使用pip安装tensorflow 2.3,因为conda的tensorflow 2.3安装有问题。)结果我安装了错误版本的cudatoolkit和cudnn。
要解决这个问题,我只需使用指定版本的cudatoolkit和cuda执行conda install即可。
请查看https://www.tensorflow.org/install/source_windows?force_isolation=true#tested_build_configurations,了解应该一起使用的tensorflow、cudatoolkit和cuda版本的信息。

1

通过更新NVIDIA设备驱动程序到最新版本(v446.14),我成功解决了这个问题。 NVIDIA驱动程序下载 这里是链接


0

我也遇到了类似的问题,并意识到问题在于CUDA和CUDNN版本不匹配。

可以参考这里获取正确的版本。从下面的参考资料中,对于TensorFlow 2.4.0,建议使用CUDA 11.0和cuDNN 8.0。 TensorFlow的CUDA和CUDNN参考

或者您可以参考这里下载适合CUDA的cuDNN。 适用于CUDA的cuDNN


-4
更简单的方法是创建一个名为 cudart64_101.dll 的链接,指向 cudart64_102.dll。虽然这并不是很正统,但由于TensorFlow正在寻找cudart64_101.dll导出的符号,并且NVIDIA的专家们不会轻易地从101到102删除符号,因此它应该可以工作(可能会有所差异)。

1
这是一个糟糕的想法,CUDA小版本(即10.1、10.2等)彼此不兼容。将链接到10.2“仿佛”它是10.1会导致随机崩溃(假设DLL根本能够加载)。此外,这意味着您在计算机上安装了cuda 10.2,而对于仅CPU安装来说这是不必要的。 - GPhilo
当然不仅仅是CPU需要这个。至于10.2与10.1完全不同以及随机崩溃,我建议您了解动态链接和导出符号。 - Dan Marinescu
这个 DLL 加载并且运行得非常好(供您参考)。 - Dan Marinescu
但最终用户应安装指定的动态库,特别是如果他们不确定这是什么意思。 - Dan Marinescu
1
当然,这并不是仅限于CPU的必要条件:请再次阅读问题标题。 - GPhilo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接