我的路径中有一个DLL文件:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\cudart64_101.dll
, but 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
这是为什么?我该如何修复它?
就我而言,问题出在python是从安装的Windows应用商店!
See @smreichling的评论Tensorflow 的 GitHub(问题 36111):
问题是我安装的python版本是来自Microsoft Store的版本,并且not来自 python.org 的一个。事实证明,从 Microsoft Store 安装的应用程序是沙盒的。 Windows 对加载 DLL 的位置有相当严格的限制。之间限制: Windows 不搜索目录PATH
DLL 的环境变量。所以应用程序商店 python 将永远无法通过这种方式找到 CUDA DLL。
所以我安装了可以下载的那个https://www.python.org.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)