有没有办法纯粹在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 |
+-----------------------------------------------------------------------------+