【发布时间】:2017-11-17 01:36:31
【问题描述】:
有没有办法完全在 CPU 上运行 TensorFlow。我机器上的所有内存都被一个运行 TensorFlow 的单独进程占用。我尝试将 per_process_memory_fraction 设置为 0,但未成功。
【问题讨论】:
标签: python tensorflow
有没有办法完全在 CPU 上运行 TensorFlow。我机器上的所有内存都被一个运行 TensorFlow 的单独进程占用。我尝试将 per_process_memory_fraction 设置为 0,但未成功。
【问题讨论】:
标签: python tensorflow
总结一下,你可以添加这段代码:
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
import tensorflow as tf
只要您安装了 GPU-tensorflow 并且您不想使用任何 GPU,使用 CUDA_VISIBLE_DEVICES 环境变量就是 if not the way 之一。
您想要
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 |
+-----------------------------------------------------------------------------+
【讨论】: