我正在开发一个对象检测项目,并希望使用我的 GPU 处理该项目。我已经完成了 NVIDIA 设置教程,一切正常。我的对象检测代码最初与 CPU 一起工作,但是当我添加这两行代码时:
net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)
net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)
显示的输出:
无法找到 zlibwapi.dll。请确保它在您的库路径中!
我已经从 cuDNN 网站下载了 zlibwapi.dll zip 文件,解压缩并将整个文件夹添加到我的环境变量路径中。该文件夹名为“zlib123dllx64”,包含“dll_x64”文件夹和“static_x64”文件夹。 “zlibwapi.dll”位于“dll_x64”文件夹内。我已在用户和系统路径变量中添加了“zlib123dllx64”文件夹,但它似乎没有解决任何问题。如何修复此错误并使 GPU 能够使用代码?
我的环境设置:
Windows环境:
当我尝试运行 TensorRT 示例 int8_caffe_mnist 时,我遇到了“无法找到 zlibwapi.dll。请确保它位于您的库路径中”的问题。确认 TensorRT 正确安装。
按照以下说明进行操作:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#prerequirements-windows
3.1.3下下载zlib并添加路径到环境变量中。 我做了以下事情:
结论: 按照将 zlibwapi.dll 添加到路径的说明对我来说不起作用。
对我有用的解决方案:
我能够在 NVIDIA Nsight 目录中找到丢失的 zlib DLL 的副本:
C:\Program Files\NVIDIA Corporation\Nsight Systems 2022.4.2\host-windows-x64\zlib.dll
我复制并重命名为:
C:\Program Files\NVIDIA GPU 计算工具包\CUDA 11.8 in\zlibwapi.dll
因为它已经在我的 PATH 环境变量中了。这样做解决了我的错误。
我看到了其他答案中链接的 CUDNN 文档中的链接,但我对安全警告有点担心。
也偶然发现了这个问题,有一个简单的解决方案立即对我有用:
查看 Nvidia 页面(确切的下载链接) 并下载。
解压文件并找到单个文件“zlibwapi.dll”。将此文件复制到
C:/path to/NVIDIA GPU Computing Toolkit / CUDA/ v11.X / bin -> right here in that folder
只要做了这两步,TF就可以正常使用GPU了。
从 http://www.winimage.com/zLibDll/zlib123dllx64.zip 下载并解压 64 位 Windows 的 zlib 包,然后将 zlibdll 文件复制到 cudnn/bin 中
如果有人也遇到和我一样的问题,我设法解决了这个问题。您无需将整个“zlib123dllx64”文件夹调用到系统环境路径中,只需将“dllx64”文件夹内的“zlibwapi.dll”添加到项目文件夹中并将其包含在项目中即可。这解决了我的问题。干杯
在bin中没有找到zlibwapi.dll,但无论如何解决了它。
因为我没有它
C:\Program Files\NVIDIA GPU 计算工具包\CUDA 11.2\
我无法更改环境变量,但我在其他地方找到了它。
mhartlove在这里建议:
解决方案:
“我发现 64 位 zlibwapi.dll 的副本隐藏在不同的名称中: C:\Program Files\NVIDIA Corporation\Nsight Systems 2022.4.2\host-windows-x64\zlib.dll
我将其复制并重命名为: C:\Program Files\NVIDIA GPU 计算工具包\CUDA 11.8 in\zlibwapi.dll
因为该文件夹已经在我的 PATH 变量中;它起作用了。结果 CUDA 工具包已经有您在其他地方需要的文件。如果他们只是对 CUDA 工具包安装程序进行更改,似乎可以省去很多麻烦。 ”
请勿从随机网站下载 zip 文件,因为它们可能包含恶意代码。
我不知道为什么 nvidia 要把它隐藏得那么好,但这里有一个官方答案,其中包含对我有用的匹配下载:
我从https://www.dllme.com/getfile.php?file=38308&id=9b45296e316cdf31b9bace739e22ca7a
下载了dll文件提取出来了
更名 zlibwapi_x64.dll -> zlibwapi.dll
并将其粘贴到我的 CUDA 的垃圾箱中
这对我有用......