防止为MonitoredTrainingSession分配gpu内存

时间:2019-06-07 17:02:48

标签: python tensorflow

我正在尝试在MonitoredTrainingSession中限制GPU内存分配。

设置tf.GPUOptions的方法如下所示:How to prevent tensorflow from allocating the totality of a GPU memory?在MonitoredTrainingSession的情况下不起作用。

我尝试过:

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=.1)
# or allow_growth=True
config = tf.ConfigProto(allow_soft_placement=False,
                        device_filters=filters,
                        gpu_options=gpu_options)

scaffold = tf.train.Scaffold(saver=tf.train.Saver(max_to_keep=100, keep_checkpoint_every_n_hours=.5))

with tf.train.MonitoredTrainingSession(
                server.target,
                is_chief=True,
                checkpoint_dir=log_dir,
                scaffold=scaffold,
                save_checkpoint_secs=600,
                save_summaries_secs=30,
                log_step_count_steps=int(1e7),
                config=config) as session:

尽管使用tf.GPUOptions,内存消耗为10189MiB / 11175MiB

1 个答案:

答案 0 :(得分:0)

我弄清楚了问题所在:打开的第一个会话需要包括内存选项。

因此,如有疑问,请在脚本开始处打开一个具有内存限制的虚拟会话。