【发布时间】:2020-06-23 11:33:31
【问题描述】:
我在路径中有一个 DLL 文件:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\cudart64_101.dll,但TensorFlow 似乎无法识别它:
2020-03-11 14:39:19.815880: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
我确保 PATH 变量包含 DLL 的路径:
>>> l = os.environ['PATH'].split(';')
>>> for s in l:
... print(s)
...
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
奇怪的是,如果我用ctypes 手动包含它,它会成功加载:
>>> import ctypes
>>> hllDll = ctypes.WinDLL("C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\bin\\cudart64_101.dll")
>>> import tensorflow as tf
2020-03-11 15:05:26.907300: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
这是为什么呢?我该如何解决?
【问题讨论】:
-
@Veeru 我安装了 cuda 10.1 和 10.2(10.2 在我的操作系统上使用,而 tf 2.1.0 支持 cuda 10.1)。也许这就是问题所在?我该如何解决?
-
此时我建议完全删除两个 CUDA 包(10.1 和 10.2),因为同时拥有这两个包可能不是一个好主意。卸载后,请确保检查所有文件夹,以免留下任何内容。请按照towardsdatascience.com/… 的 Windows 安装说明进行操作
-
@Omer Lubin,您能否通过上述评论确认错误是否已解决。否则,您能否分享当前状态,以便我可以帮助您。谢谢!
-
我也有同样的问题。你解决了吗,@OmerLubin?
-
@revy 我没有。我放弃并安装了 tensorflow docker。如果你对 docker 不熟悉,可以把 docker 看作是小型轻量级虚拟机。 tensorflow docker 已经设置好了,只需要你安装 docker 软件和 NVIDIA Docker Support。你可以在这里阅读:tensorflow.org/install/docker
标签: python python-3.x windows tensorflow