簡體   English   中英

使用 GPU 支持為 TensorFlow 創建 pip 包導致 0 字節 simple_console_for_windows.zip

[英]Creating pip package for TensorFlow with GPU support results in 0 byte simple_console_for_windows.zip

在使用 GPU 支持成功構建 TensorFlow 后,我正在嘗試構建 pip 包,但收到錯誤消息,說它無法讀取 simple_console_for_windows.zip 文件。

我已經確認該文件在 C:\\tensorflow\\bazel-bin\\tensorflow\\tools\\pip_package 文件夾中,但它是 0 字節。

這是我的 pip 構建命令:

bazel-bin\tensorflow\tools\pip_package\build_pip_package C:/tmp/tensorflow_pkg

這是完整的錯誤:

Unzipping simple_console_for_windows.zip to create runfiles tree...
[./bazel-bin/tensorflow/tools/pip_package/simple_console_for_windows.zip]
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of ./bazel-bin/tensorflow/tools/pip_package/simple_console_for_windows.zip or
        ./bazel-bin/tensorflow/tools/pip_package/simple_console_for_windows.zip.zip, and cannot find ./bazel-bin/tensorflow/tools/pip_package/simple_console_for_windows.zip.ZIP, period.

我在 Windows 10 上,使用 Bazel 0.16.1、Tensorflow 1.11、CUDA 9.2 和 CUDNN 7.2.1。

我的構建命令是:

bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

任何人都知道我可以嘗試或檢查什么來構建 pip 包?

這是一個解決方法的未解決問題。 https://github.com/tensorflow/tensorflow/issues/20332

  1. 編輯以下文件以刪除所有帶有“.zip”的行。

    bazel-out/x64_windows-opt/bin/tensorflow/tools/pip_package/simple_console_for_windows.zip-0.params

  2. 運行以下命令行以生成所需的 zip 文件,在我的情況下約為 107 MB。 詳細選項將列出所有文件。

    外部\\bazel_tools\\tools\\zip\\zipper\\zipper.exe vcC bazel-out/x64_windows-opt/bin/tensorflow/tools/pip_package/simple_console_for_windows.zip @bazel-out/x64_windows-opt/bin/tensorflow/tools/pip_package/ simple_console_for_windows.zip-0.params

  3. 現在原始的 pip build 命令將構建一個 whl。

這是一個已知問題,不幸的是它的根本原因是https://github.com/tensorflow/tensorflow/issues/22390 TF 是一個很大的代碼庫,當 zip 文件的大小超過 2 GB 時,bazel 的壓縮工具會因為他們只使用 zip32。

最終的解決方案是修復 bazel 以使用 zip64,以及 TensorFlow 來減輕一些重量,該包最近大幅增長。 但是,bazel 團隊能夠為我們提供解決方法。 只有在構建 pip 包時,您才應該在 bazel 命令中添加--define=no_tensorflow_py_deps=true 您仍然無法構建調試二進制文件,但至少您將能夠構建發布二進制文件。

暫無
暫無

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

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