python - 用于 CPU 的 Tensorflow 1.9,没有 GPU 仍然需要 cudNN - Windows
问题描述
我正在使用 python 3.6.3 并使用 tensorflow 1.9、pip 18.0 的 Win10 机器上工作。我没有提供使用 gpu 安装 tensorflow 的选项(即),根据此链接1,我使用了
pip install tensorflow
并且没有提供使用 GPU 的选项。但是,在尝试导入tensorflow 时,我遇到了以下错误
ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'
在遵循各种链接link2、link3 之后,我安装了Visual Studio 更新 3并使用了提供的脚本tensorflow self check,并遇到了以下错误:
Could not load 'cudart64_80.dll'. .....
Could not load 'nvcuda.dll' .......
Could not load 'cudnn64_5.dll' ........
当我在没有 GPU 的情况下安装 Tensorflow 时,为什么要寻找这些包?我的系统目前没有 GPU。我尝试使用升级的 pip 18.0卸载并重新安装,但问题仍然存在。这怎么能纠正。?
解决方案
该链接中的自检脚本被标记为“已弃用”,因此它可能不适用于最新版本(至少不适用于带有 GPU 的 TensorFlow 1.9,因为这需要 cudart64_90.dll 而不是 cudart64_80.dll)。此外,该脚本仅检查 CPU 或 GPU 版本可能需要的所有可能丢失的文件。详细信息会告诉您哪些文件只有 GPU 版本才需要。
如果不确定,您可以首先通过执行pip show tensorflow-gpu
. 如果您只安装了 CPU 版本,则应该没有任何显示。
我昨天在将GPU版本从1.8升级到1.9时遇到了一个问题。该问题可能与您的问题不完全相同,但可能是相关的,因为我的问题也是由于 DLL 加载失败导致 _pywrap_tensorflow_internal 导入失败引起的。如果您的问题也是由堆栈跟踪消息中明确提到的DLL 加载失败引起的,您可以考虑使用这种方法来查明问题:
使用 DLL 依赖项分析器Dependencies来分析
<Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd
和确定确切丢失的 DLL(由?
DLL 旁边的 a 表示)。查找缺少的 DLL 的信息并安装相应的软件包以解决问题。
在我的情况下,缺少的库是VCOMP140.dll
,这是 Microsoft 的 OpenMP 库,1.8 版本不需要。我为 VS 2017 安装了 VC++ Redistributable,问题得到解决。
推荐阅读
- r - Rbind 使用 R 将文件名/模式包含在源文件的列中的文件
- javascript - 我如何获得 Axios 发布请求正在进行中
- html - 我是这个 html 和 css 编码的新手,它无法识别 mp3,我该如何编码才能识别它?
- java - PKIX 路径构建在开发环境中失败,但在 localhost 中失败
- python - 在 Python 中发送带有有效负载的 GET 请求
- adobe - Adobe LiveCycle 中带有可流动内容的分页符
- java - 尽管将 rootlogger 设置为 INFO/DEBUG,但只打印错误语句。为什么?
- c# - 如何防止用户选择列表框中的项目,但仍然让代码选择项目?不喜欢使用 enabled = false
- youtube - YouTube 数据 API 未返回预定的直播流
- node.js - 如何在 exec 函数中使用 `cd` 命令指定文件夹位置?