Python 阻止TensorFlow访问GPU?
有没有一种方法可以完全在CPU上运行TensorFlow。我机器上的所有内存都被运行TensorFlow的单独进程占用。我已尝试将每进程内存分数设置为0,但未成功。看看这个或这个 总结一下,您可以添加以下代码:Python 阻止TensorFlow访问GPU?,python,tensorflow,Python,Tensorflow,有没有一种方法可以完全在CPU上运行TensorFlow。我机器上的所有内存都被运行TensorFlow的单独进程占用。我已尝试将每进程内存分数设置为0,但未成功。看看这个或这个 总结一下,您可以添加以下代码: import os os.environ["CUDA_VISIBLE_DEVICES"] = "-1" import tensorflow as tf 每当您安装了GPU tensorflow并且不想使用任何GPU时,使用CUDA\u VISIBLE\u设备环境变量是一个很好的选择 您
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
import tensorflow as tf
每当您安装了GPU tensorflow并且不想使用任何GPU时,使用CUDA\u VISIBLE\u设备
环境变量是一个很好的选择
您可以选择导出CUDA\u VISIBLE\u DEVICES=
或使用带有TensorFlow的非GPU安装的virtualenv
通过打开GPU限制为0的会话,您只能使用CPU:
sess = tf.Session(config=tf.ConfigProto(device_count={'GPU': 0}))
有关更多详细信息,请参阅
证明它对@Nicolas有效的证据:
用Python编写:
import tensorflow as tf
sess_cpu = tf.Session(config=tf.ConfigProto(device_count={'GPU': 0}))
import tensorflow as tf
sess_gpu = tf.Session()
然后在终端中:
nvidia-smi
nvidia-smi
您将看到如下内容:
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 24869 C /.../python 99MiB |
+-----------------------------------------------------------------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 25900 C /.../python 5775MiB |
+-----------------------------------------------------------------------------+
然后重复该过程:
用Python编写:
import tensorflow as tf
sess_cpu = tf.Session(config=tf.ConfigProto(device_count={'GPU': 0}))
import tensorflow as tf
sess_gpu = tf.Session()
然后在终端中:
nvidia-smi
nvidia-smi
您将看到如下内容:
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 24869 C /.../python 99MiB |
+-----------------------------------------------------------------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 25900 C /.../python 5775MiB |
+-----------------------------------------------------------------------------+
据我所知,目前还不清楚它是否有效。我的理解是,目标是避免内存分配。如果是这样的话,它会起作用的。如上所述,据我所知,它确实使用GPU,即使它不使用任何内存。我可能错了,但我相信问题在于如何纯粹在CPU上运行TensorFlow。@jasekp?你能澄清一下目标吗?如果目标类似于使用cpu与gpu上运行的另一个进程并行进行测试以进行培训,那么这应该可以实现。使用此方法后,我如何重新启用gpu?您是否找到Python脚本中打开/关闭TensorFlow gpu的解决方案?@GILO您可以在下一次运行脚本时更改gpu编号,例如=“0”或“0,1”