有没有办法纯粹在CPU上运行TensorFlow。我的机器上的所有内存都被运行TensorFlow的独立进程占用。我已经尝试将per_process_memory_fraction设置为0,但未成功。
答案 0 :(得分:28)
总结一下,你可以添加这段代码:
import os
os.environ["CUDA_VISIBLE_DEVICES"]="-1"
import tensorflow as tf
编辑:
引用此comment,使用CUDA_VISIBLE_DEVICES
环境变量是(如果不是)每当您安装GPU-tensorflow并且您不想在所有GPU卡上使用时的方法之一。
您希望导出CUDA_VISIBLE_DEVICES =或者使用非GPU TensorFlow的virtualenv。另见:#2175(评论)
答案 1 :(得分:7)
您可以通过打开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 |
+-----------------------------------------------------------------------------+