在一个系统上构建Tensorflow,在另一个系统上部署

时间:2018-02-19 23:28:08

标签: windows tensorflow deployment

如何在与我构建的计算机不同的计算机上部署TensorFlow?需要复制哪些文件?在每台目标PC上从源代码构建是不切实际的。在我的情况下,我需要从源代码构建,因为TensorFlow的标准安装并未针对我的目标进行优化(非GPU构建但可用AVX / AVX2),而不是那应该有所不同。我正在建设&在Windows PC上部署,几乎肯定会有所作为。

1 个答案:

答案 0 :(得分:0)

思考:pythonTensorflow本质上是一个python包,python包与pip一起安装。

在这种特定情况下,TensorFlow(版本1.5)的标准安装已根据standard TensorFlow instructions使用pip3 install --upgrade tensorflow在我的目标系统上轻松安装。但是当我测试我已经开发的示例时,我被警告说安装不是最佳的,因为AVXAVX2指令可用,但没有被使用。

要从源代码重建Tensorflow以使用AVX2,请关注instructions here,特别是:

  • 从github获取源:git clone https://github.com/tensorflow/tensorflow
  • 选择Bazel或CMake构建选项(我选择了CMake,这需要SWIG
  • 自定义构建以指定使用AVXAVX2(对我而言,我在-Dtensorflow_WIN_CPU_SIMD_OPTIONS=/arch:AVX2步骤中向选项添加了CMake
  • 构建tensorflow python pip包(CMake分步说明中的最后一条指令)

获得包(wheel.whl)文件后,将其移至目标PC,然后使用pip3 install tensorflow-<version-specific-details>.whl进行安装。

此过程已经过测试:

  • 开发PC:Windows 7-64位,Python 3.6.4(64位),SWIG 3.0.12
  • 目标PC:Windows 8.1 Pro(64位),Python 3.6.4(64位)

为了记录,使用AVX2指令使我的网络培训速度提高了大约20%。此外,尽管已知的一个限制是需要使用Python 3.5进行CMake构建,但我发现使用Python 3.6.4没有问题(到目前为止)。