【发布时间】:2019-04-07 01:30:58
【问题描述】:
我的问题与here 已经回答的问题几乎相同,但略有不同:
我正在使用带有几个 GPU 的服务器,我与同事共享这些 GPU 来训练我们的深度学习模型。服务器还应该运行一个从我们的模型中采样的小型 Web 应用程序。采样脚本使用相对较新的eager execution。从理论上讲,它允许我通过提供如下配置来阻止 Tensorflow 分配所有 GPU 内存:
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
tf.enable_eager_execution(config=config)
实际上,这不起作用。急切执行的文档还指出,并非所有适用于会话的配置选项都可以在急切执行中工作 (here)。但是那我该如何限制使用的内存呢?
我知道我可以像这样限制可见设备:
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
但我不想不断地阻塞整个 GPU 来执行一个偶尔被调用并且实际上需要更少内存的任务。
【问题讨论】:
标签: tensorflow