簡體   English   中英

用於 CPU 的 Tensorflow 1.9,沒有 GPU 仍然需要 cudNN - Windows

[英]Tensorflow 1.9 for CPU, without GPU still requires cudNN - Windows

我正在 Win10 機器上工作,使用 python 3.6.3 並使用 tensorflow 1.9,pip 18.0。 我沒有提供使用 gpu 安裝 tensorflow 的選項,(即),根據這個link1 ,我使用

    pip install tensorflow

並且沒有提供使用 GPU 的選項。 但是,在嘗試導入tensorflow 時,我遇到了以下錯誤

    ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'

按照各種鏈接link2link3 之后,我安裝了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 時,為什么我的 Tensorflow 會尋找這些包? 我的系統目前沒有 GPU。 我嘗試使用升級后的 pip 18.0卸載並重新安裝,但問題仍然存在。 這怎么能糾正。?

該鏈接中的自檢腳本標記為“已棄用”,因此它可能不適用於最新版本(至少不適用於帶有 GPU 的 TensorFlow 1.9,因為這將需要 cudart64_90.dll 而不是 cudart64_80.dll)。 此外,該腳本僅檢查 CPU 或 GPU 版本可能需要的所有可能丟失的文件。 詳細信息會告訴您哪些文件僅 GPU 版本需要。

您可以首先通過執行pip show tensorflow-gpu來仔細檢查未安裝 GPU 版本,如果您不確定它。 如果您只安裝了 CPU 版本,則應該沒有任何顯示。

我昨天在將GPU版本從1.8升級到1.9時遇到了一個問題。 該問題可能與您的不完全相同,但可能是相關的,因為我的問題也是由於 DLL 加載失敗導致 _pywrap_tensorflow_internal 導入失敗引起的。 如果您的問題也是由堆棧跟蹤消息中明確提到的DLL loading failure引起的,您可以考慮使用這種方法來查明問題:

  1. 使用 DLL 依賴分析器Dependencies分析<Your Python Dir>\\Lib\\site-packages\\tensorflow\\python\\_pywrap_tensorflow_internal.pyd並確定確切丟失的 DLL(由 DLL 旁邊的?表示)。

  2. 查找丟失的 DLL 的信息並安裝相應的包以解決問題。

在我的例子中,缺少的庫是VCOMP140.dll ,它是微軟的 OpenMP 庫,1.8 版本不需要。 為 VS 2017安裝了VC++ Redistributable,問題解決了。

狀態 2020-07-12:tensorflow-gpu 已集成到常規安裝中 - 這也會導致問題。 自 2.0.0 版起確實如此 - 請參閱github 上的此處

可以在 github上找到大量不同的輪子/兼容性列表。 通過使用它,您可以結合各自的 for python 降級到幾乎所有可用版本。 例如:

pip install tensorflow==2.0.0

(您必須注意的是,您不能安裝任意版本的 tensorflow,它們必須與您的 python 安裝相對應。因此,在安裝 Python 3.7.8 和 3.8.3 之前(或類似地針對您的情況),您會得到

ERROR: Could not find a version that satisfies the requirement tensorflow==2.0.0 (from versions: 2.2.0rc1, 2.2.0rc2, 2.2.0rc3, 2.2.0rc4, 2.2.0, 2.3.0rc0, 2.3.0rc1)
ERROR: No matching distribution found for tensorflow==2.0.0

)

除了沒有 GPU 的用例之外,這對於沒有 AVX 支持的傳統 CPU 和計算能力太低的 GPU 也應該很有用。


如果您只需要最新版本(在您的問題中聽起來不像),則可以在此 tensorflow 頁面上找到當前輪子包的 url 列表。 那來自這個SO-answer

注意:這個指向不同版本列表鏈接對我不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM