【问题标题】:Tensorflow Object Detection API - Continuously Increasing RAM Usage during TrainingTensorflow 对象检测 API - 在训练期间不断增加 RAM 使用率
【发布时间】:2018-11-04 02:22:50
【问题描述】:

环境:

  • Tensorflow 1.8-gpu(官方 docker 容器)
  • nVidia 1080ti GPU
  • 64G 内存
  • 输入图片大小只有300x300,测试用的只有60张

在训练期间,观察不断增加的内存使用量(来自“top”命令)

  • step-10 使用 39G
  • step-200 使用 50G
  • step-2000 使用 59G
  • ...
  • OOM

使用“ssd_mobilenet_v2”管道并减少批量大小、队列大小和输入读取器。

不知道为什么内存使用量不断累积,然后就变成OOM了。系统是否存储了权重以外的内容或某处存在内存泄漏?内存使用量应该在几个步骤后保持不变?

model {
  ssd {
    num_classes: 2
    image_resizer {
      fixed_shape_resizer {
        height: 300
        width: 300
      }
    }
  }
}

train_config {
  batch_size: 10
  num_steps: 200000
  fine_tune_checkpoint_type: "detection"
  batch_queue_capacity: 10
  num_batch_queue_threads: 10
  prefetch_queue_capacity: 10
}

train_input_reader {
  queue_capacity: 10
  min_after_dequeue: 10
}
eval_config {
  num_examples: 1
  max_evals: 10
  use_moving_averages: false
}
eval_input_reader {
  queue_capacity: 10
  min_after_dequeue: 10
}

【问题讨论】:

  • 嗨,你解决过这个问题吗?与 mobilenet_v1_ssd 有同样的问题 - 大约 7k 步后使用 50gb RAM
  • 还没有...将在本周晚些时候重新讨论这个问题。会在这里持续更新
  • 同样的问题,内存使用量不断增加。你在他们的 github repo 上打开过 issue 吗?
  • @Jon 不,我认为我们应该这样做。但是,我正在从事其他一些项目。你能帮忙吗?

标签: tensorflow object-detection-api


【解决方案1】:

我在类似的系统上遇到了类似的问题。我通过尝试不同的 tf 和 CUDA 版本解决了这个问题。您的 OOM 崩溃错误是什么样的?

对于 1080 和 64 GB RAM,您的批量大小是合适的。

我可以推荐的另一件事是尝试 v1 检查点。

【讨论】:

    猜你喜欢
    • 2019-03-11
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 2019-04-05
    • 2019-06-28
    • 1970-01-01
    相关资源
    最近更新 更多