小编dpa*_*don的帖子

Tensorflow 对象检测 API 被终止 - OOM。如何减少随机缓冲区大小?

系统信息

  • 操作系统平台和发行版:CentOS 7.5.1804
  • TensorFlow 安装自:pip install tensorflow-gpu
  • TensorFlow 版本:tensorflow-gpu 1.8.0
  • CUDA/cuDNN 版本:9.0/7.1.2
  • GPU 型号和内存:GeForce GTX 1080 Ti,11264MB
  • 重现的确切命令

    python train.py --logtostderr --train_dir=./models/train --pipeline_config_path=mask_rcnn_inception_v2_coco.config

描述问题

我正在尝试在我自己的数据集上训练 Mask-RCNN 模型(从在 COCO 上训练的模型进行微调),但是一旦填充了 shuffle 缓冲区,该过程就会终止。

在此之前,nvidia-smi 显示内存使用量约为 10669MB/11175MB,但 GPU 使用率仅为 1%。

我尝试调整以下 train_config 设置:

batch_size: 1    
batch_queue_capacity: 10    
num_batch_queue_threads: 4    
prefetch_queue_capacity: 5
Run Code Online (Sandbox Code Playgroud)

对于 train_input_reader:

num_readers: 1
queue_capacity: 10
min_after_dequeue: 5
Run Code Online (Sandbox Code Playgroud)

我相信我的问题类似于TensorFlow Object Detection API - Out of Memory,但我使用的是 GPU 而不是 CPU。

我正在训练的图像比较大(2048*2048),但是我想避免缩小尺寸,因为要检测的对象非常小。我的训练集包含 400 张图像(在 .tfrecord 文件中)。 …

python tensorflow tfrecord object-detection-api

7
推荐指数
1
解决办法
5004
查看次数