有没有办法在没有互联网的情况下从源代码构建 TensorFlow?

Is there any way to build TensorFlow from source without having internet?

目前从源代码构建tensorflow需要连接到互联网来下载一些依赖项。每次我重建它时,bazel 都会删除已下载的内容并重新下载。

我想知道是否有任何可能的方法通过预下载所有依赖项并在没有互联网的情况下构建它来避免这种情况?

这似乎是 TensorFlow 不能很好支持的情况,显然一种方法是构建 Docker 或其他 VM 环境,然后分发—— https://github.com/tensorflow/tensorflow/issues/3194#issuecomment-231326381

Bazel 会自动缓存它下载的外部依赖项。有没有可能你是:

  1. 移动 tensorflow 源代码
  2. 更改它用于外部存储库的 BUILD 文件
  3. 每次构建不同的目标(可能需要其他依赖项)?

如果其中 none 看起来有可能,您能否使用 --explain 添加 运行 连续两次相同的 bazel 构建的输出,您会看到重新下载行为?

可以预下载第 3 方依赖项,如 here 所述。

在 tensorflow v0.11.0 中,它们列在 "tensorflow/workspace.bzl" 中。下载您需要的文件后,替换链接如下:

url = "http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz",

url = "file:////mnt/a/usr/bzip2-1.0.6.tar.gz",

请注意,大约有 20 个依赖项需要下载。