在没有 GPU 的虚拟机中执行 Tensorflow

Tensorflow execution in a virtual machine with no GPUs

我有一个关于 tensorflow 的问题,这个问题对我要完成的任务有点关键。

我的场景如下, 1. 我有一个已经设置、训练和测试的 tensorflow 脚本。它运行良好。

  1. 训练和测试是在带有 2 个 Titan X 卡的 devBox 上完成的。

    1. 我们现在需要将此系统移植到实时测试阶段,并且需要将其部署在虚拟机上,Ubuntu 14.04 运行ning 在其之上。

这就是问题所在 - 虚拟机将无法访问底层 GPU,并且必须在 CPU 仅模式下验证传入数据。我的问题,

  1. 没有 GPU 会阻碍我的 ML 系统的验证过程吗? tensorflow 是否默认使用 GPU 进行 CNN 计算,没有 GPU 会影响执行吗?
  2. 如何 运行 我的脚本处于 CPU 仅模式?
  3. 将 CUDA_VISIBLE_DEVICES 设置为 none 是否有助于系统在 GPU 机器上训练后在 CPU-only 模式下进行验证?

如果这是一个菜鸟问题,我很抱歉,但我是 TF 的新手,任何建议都将不胜感激。如果您需要有关我的场景的更多信息,请告诉我。

CUDA_VISIBLE_DEVICES 设置为空字符串进行测试将确保您没有任何依赖于 GPU 存在的东西,理论上它应该足够了。实际上,GPU 代码路径中存在一些错误,当没有 GPU 时(如 this one),这些错误会被触发,因此您要确保您的 GPU 软件环境(CUDA 版本)相同。

或者,您可以在没有 GPU 支持的情况下编译 TensorFlow (bazel build -c opt tensorflow),这样您就不必担心匹配 CUDA 环境或设置 CUDA_VISIBLE_DEVICES