小能豆

如何在 CPU 上运行 Tensorflow

javascript

我已经在 Ubuntu 14.04 上安装了 GPU 版本的 tensorflow。

我在 GPU 服务器上,TensorFlow 可以访问可用的 GPU。

我想在 CPU 上运行 tensorflow。

通常我可以用env CUDA_VISIBLE_DEVICES=0它在 0 号 GPU 上运行。

我怎样才能在 CPU 之间进行选择?

我不想用重写我的代码with tf.device(“/cpu:0”):


阅读 47

收藏
2024-09-25

共1个答案

小能豆

要仅在 CPU 上运行 TensorFlow,即使安装了 GPU 版本,您也可以将CUDA_VISIBLE_DEVICES环境变量设置为空字符串。这将有效地隐藏 TensorFlow 中的 GPU,使其改用 CPU。

具体操作如下:

使用命令行

运行 Python 脚本时,您可以在命令行中直接设置环境变量:

CUDA_VISIBLE_DEVICES="" python your_script.py

在 Python 脚本中

如果您希望在 Python 脚本本身内设置环境变量(尽管通常最好在外部设置),则可以使用该os模块:

import os
os.environ["CUDA_VISIBLE_DEVICES"] = ""
import tensorflow as tf

# Your TensorFlow code here

其他说明

  • 此方法不需要您修改现有 TensorFlow 代码的任何部分,因为它可以防止 TensorFlow 看到任何 GPU。
  • 确保CUDA_VISIBLE_DEVICES在导入 TensorFlow 之前进行设置。如果在设置此变量之前导入了 TensorFlow,则不会生效。
  • 如果您想指定在特定的 CPU 核心上运行,虽然 TensorFlow 本身不提供将特定任务分配给 CPU 核心的直接方法,但您可以在操作系统级别或使用 CPU 亲和性工具来管理它,但这对于 TensorFlow 工作负载通常不是必需的。

通过使用空字符串CUDA_VISIBLE_DEVICES,TensorFlow 将默认在 CPU 上运行,而无需大幅更改代码。

2024-09-25