python - 防止为 MonitoredTrainingSession 分配 GPU 内存

标签 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

最佳答案

我找出了问题所在:打开的第一个 session 需要包含内存选项。

因此,如果有疑问,请在脚本开头打开一个具有内存限制的虚拟 session 。

关于python - 防止为 MonitoredTrainingSession 分配 GPU 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56498566/

相关文章:

python - pytest 有没有办法检查是否在错误级别或更高级别创建了日志条目?

tensorflow - Ruy、XNNPACK 和 Eigen 在 Tensorflow Lite 中如何工作?

python - 在 tensorflow 中使用占位符作为形状

python - 如何使用适用于 x86_64 系统的精选 TensorFlow ops 构建 TensorFlow lite?

tensorflow - Tensorflow 的TripletSemiHardLoss 和TripletHardLoss 是如何实现的,如何与Siamese Network 一起使用?

python - ValueError : Error when checking input: expected gru_5_input to have shape (None, None, 10) 但得到形状为 (1, 4, 1) 的数组

python - 导入自定义包和模块出现问题?

python - 制作 OpenSSL key 时要为 commonName 添加什么?

python Selenium : get values from dropdown list

python - 使用 Python 操作 XML