防止 TensorFlow 访问 GPU



有没有办法纯粹在CPU上运行TensorFlow。我机器上的所有内存都被一个运行TensorFlow的单独进程占用。我尝试将per_process_memory_fraction设置为 0,但没有成功。

看看这个问题或这个答案。

总而言之,您可以添加这段代码:

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

使用CUDA_VISIBLE_DEVICES环境变量是安装GPU张量流并且不想使用任何GPU时要走的路之一。

您希望export CUDA_VISIBLE_DEVICES=或者使用具有非GPU安装的TensorFlow的virtualenv。

您可以通过打开 GPU 限制为 0 的会话来仅使用 CPU:

sess = tf.Session(config=tf.ConfigProto(device_count={'GPU': 0}))

有关更多详细信息,请参阅 https://www.tensorflow.org/api_docs/python/tf/ConfigProto。

证明它适用于@Nicolas:

在 Python 中,编写:

import tensorflow as tf
sess_cpu = tf.Session(config=tf.ConfigProto(device_count={'GPU': 0}))

然后在终端中:

nvidia-smi

您将看到类似以下内容:

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0     24869    C   /.../python                 99MiB                     |
+-----------------------------------------------------------------------------+

然后重复该过程:在 Python 中,编写:

import tensorflow as tf
sess_gpu = tf.Session()

然后在终端中:

nvidia-smi

您将看到类似以下内容:

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0     25900    C   /.../python                                   5775MiB |
+-----------------------------------------------------------------------------+

最新更新