有没有一种方法可以纯粹使用CPU运行TensorFlow。我机器上的所有内存都被运行TensorFlow的另一个进程占用了。我尝试把per_process_memory_fraction设置为0,但是没有成功。
有没有一种方法可以纯粹使用CPU运行TensorFlow。我机器上的所有内存都被运行TensorFlow的另一个进程占用了。我尝试把per_process_memory_fraction设置为0,但是没有成功。
总之,您可以添加此代码片段:
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
import tensorflow as tf
调整 CUDA_VISIBLE_DEVICES
环境变量是在安装了 GPU 版本的 Tensorflow 但你不想使用任何 GPU 的情况下可以采用的方法之一(如果不是唯一的解决办法)。
你需要使用
export CUDA_VISIBLE_DEVICES=
或者在虚拟环境中使用非 GPU 版本的 TensorFlow。
您可以通过打开一个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 |
+-----------------------------------------------------------------------------+