使用GPU支持为TensorFlow创建pip包会导致0字节的simple_console_for_windows.zip

使用GPU支持为TensorFlow创建pip包会导致0字节的simple_console_for_windows.zip,windows,tensorflow,bazel,Windows,Tensorflow,Bazel,在成功地使用GPU支持构建TensorFlow之后,我正在尝试构建pip包,但我收到一个错误消息,说它无法读取simple_console_for_windows.zip文件 我已经确认该文件位于C:\tensorflow\bazel bin\tensorflow\tools\pip\u包文件夹中,但它是0字节 这是我的pip构建命令: bazel-bin\tensorflow\tools\pip_package\build_pip_package C:/tmp/tensorflow_pkg

在成功地使用GPU支持构建TensorFlow之后,我正在尝试构建pip包,但我收到一个错误消息,说它无法读取simple_console_for_windows.zip文件

我已经确认该文件位于C:\tensorflow\bazel bin\tensorflow\tools\pip\u包文件夹中,但它是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包吗?

这里有一个解决方法的开放问题

  • 编辑以下文件以删除带有“.zip”的所有行

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

  • 运行下面的命令行生成所需的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

  • 现在,原始的pip build命令将构建一个whl


  • 这是一个已知的问题,不幸的是,其根本原因是 TF是一个很大的代码库,当zip文件的大小超过2GB时,bazel的压缩工具就会崩溃,因为它们只使用zip32

    最终的解决方案是修复bazel使用zip64和TensorFlow以减轻一些重量,该软件包最近大幅增长。 然而,bazel团队能够为我们提供一个解决方案。
    只有在构建pip包时,才应该将
    --define=no\u tensorflow\u py\u deps=true
    添加到bazel命令中。您仍然无法构建调试二进制文件,但至少可以构建发布二进制文件。

    我必须在第2点中对代码进行轻微的路径更改才能使其正常工作。谢谢你的回答。我想知道你是否能回答我最近在windows上成功的tensorflow版本是r1.12。没有上述改变,一切进展顺利。