在没有Internet访问权限的计算机上安装Tensorflow GPU / CUDA依赖项

时间:2017-12-20 08:16:24

标签: tensorflow configuration bazel

我有两台机器 -

  1. dccten1a无法访问互联网,我需要安装支持GPU的Tensorflow

  2. 带有互联网访问权限的dccten1b,以便我可以下载包并转移到dccten1a

  3. 在安装Tensorflow的最后一步中,当运行bazel build命令生成whl文件时,我收到一条错误,指出它无法在正在查找的文件夹中找到文件,也不能很明显,因为1a无法访问互联网。

    bazel build --config=opt --config=cuda /home/tensorflow/Documents/tf_dependencies/tensorflow-master/tensorflow/tools/pip_package:build_pip_package --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0"
    
    
    ERROR: error loading package '': Encountered error while reading extension file 'closure/defs.bzl': no such package '@io_bazel_rules_closure//closure': Error downloading [http://bazel-mirror.storage.googleapis.com/github.com/bazelbuild/rules_closure/archive/5ca1dab6df9ad02050f7ba4e816407f88690cf7d.tar.gz, https://github.com/bazelbuild/rules_closure/archive/5ca1dab6df9ad02050f7ba4e816407f88690cf7d.tar.gz] to /home/xyzuser/.cache/bazel/_bazel_xyzuser/cb1e63cb5e61cab49a9fd2f5ba92d003/external/io_bazel_rules_closure/5ca1dab6df9ad02050f7ba4e816407f88690cf7d.tar.gz: All mirrors are down: [Unknown host: github.com, Unknown host: mirror.bazel.build]
    

    我检查了系统,并且没有错误消息中显示的目录(即/home/xyzuser/.cache/bazel/_bazel_xyzuser/cb1e63cb5e61cab49a9fd2f5ba92d003/external/io_bazel_rules_closure/)。因此,我创建它,搜索并在线找到必需的(?)文件,在带有Internet的机器上下载文件,将其传输到目标机器,将文件移动到刚刚创建的目录,然后再次尝试运行命令: / p>

    (tensorflow@dccten1a):
    mkdir -p /home/tensorflow/.cache/bazel/_bazel_tensorflow/cb1e63cb5e61cab49a9fd2f5ba92d003/external/io_bazel_rules_closure
    
    (tensorflow@dccten1b):
    http://bazel-mirror.storage.googleapis.com/github.com/bazelbuild/rules_closure/archive/5ca1dab6df9ad02050f7ba4e816407f88690cf7d.tar.gz
    
    sudo scp -r /home/tensorflow/Downloads/5ca1dab6df9ad02050f7ba4e816407f88690cf7d.tar.gz  tensorflow@160.88.114.17:/home/tensorflow/Documents/tf_dependencies
    
    (tensorflow@dccten1a):
    mv /home/tensorflow/Documents/tf_dependencies/5ca1dab6df9ad02050f7ba4e816407f88690cf7d.tar.gz /home/tensorflow/.cache/bazel/_bazel_tensorflow/cb1e63cb5e61cab49a9fd2f5ba92d003/external/io_bazel_rules_closure
    

    然后我再次运行bazel build命令,但同样的错误仍然存​​在。

1 个答案:

答案 0 :(得分:0)

使用--experimental_repository_cache下载具有Internet访问权限的计算机上的依赖项,将缓存传输到没有Internet访问权限的计算机,并使用--experimental_repository_cache引用相同的缓存。

e.g。

1)在具有互联网访问权限的计算机上,运行

tensorflow@dccten1b $ bazel build --experimental_repository_cache=/path/to/some/folder --config=opt --config=cuda /home/tensorflow/Documents/tf_dependencies/tensorflow-master/tensorflow/tools/pip_package:build_pip_package --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0""

2)使用SD卡或闪存驱动器将/path/to/some/folder的缓存复制到无法访问Internet的计算机上。

3)在没有Internet访问权限的计算机上,再次运行相同的命令并将标志设置为缓存的位置。

tensorflow@dccten1a $ bazel build --experimental_repository_cache=/path/to/some/folder --config=opt --config=cuda /home/tensorflow/Documents/tf_dependencies/tensorflow-master/tensorflow/tools/pip_package:build_pip_package --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0""