0

我正在为课堂上的学生使用 Jupyterhub(docker spawner) 构建一个 tensorflow 环境,但我遇到了这个问题。

默认情况下,TensorFlow 将几乎所有 GPU 的所有 GPU 内存(受 CUDA_VISIBLE_DEVICES 限制)映射到进程可见。这样做是为了通过减少内存碎片更有效地使用设备上相对宝贵的 GPU 内存资源。(来自https://www.tensorflow.org/tutorials/using_gpu

如果班上有人用gpu使用python程序,那么gpu内存几乎会耗尽。根据这种情况,我需要手动添加一些限制代码。喜欢:

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config, ...)

但这不是一个很好的解决方案。每次生成新代码时,我都应该添加此代码。

如果 jupyterhub 可以添加一些配置来避免这种情况或其他很好的解决方案?请让我知道,谢谢!

4

1 回答 1

2
import tensorflow as tf
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.2)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

这很好用

于 2017-11-15T07:16:32.277 回答