API обнаружения объектов TensorFlow - недостаточно памяти - PullRequest
0 голосов
/ 07 июня 2018

Я использую Tensorflow Object Detection API для обучения моего собственного детектора объектов.Я загрузил faster_rcnn_inception_v2_coco_2018_01_28 из модельного зоопарка ( здесь ) и создал свой собственный набор данных (train.record (~ 221Mo), test.record и карту меток) для его точной настройки.

Но когда я запускаю его:

python train.py --logtostderr --pipeline_config_path=/home/username/Documents/Object_Detection/training/faster_rcnn_inception_v2_coco_2018_01_28/pipeline.config --train_dir=/home/username/Documents/Object_Detection/training/

процесс завершается во время операции заполнения буфера перемешивания, похоже на проблему OOM (16Go RAM) ...

2018-06-07 12:02:51.107021: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:94] Filling up shuffle buffer (this may take a while): 410 of 2048
Process stopped

Существует ли способ уменьшить размер буфера перемешивания?Как это повлияет на его размер?

Затем я добавляю некоторые операции подкачки (115Go swap + 16Go RAM) и операция заполнения буфера shuffle завершена, но мое обучение заняло всю оперативную память и менялось после шага 4, тогда как мой train.recordтолько около 221 Мо!

Я уже добавил эти строки в мой pipe.config> train_config:

batch_size: 1
batch_queue_capacity: 10
num_batch_queue_threads: 8
prefetch_queue_capacity: 9

, а эти - в мой pipe.config> train_input_reader:

queue_capacity: 2
min_after_dequeue: 1
num_readers: 1

следующий за этим пост .

Я знаю, что мои изображения очень (очень и очень) большие: 25Мо каждый, но так как я сделал всего 9 снимков, чтобы сделать запись train.record (просто для проверки правильности моей установки), это не должно быть такПотребление памяти верно?

Есть еще идеи о том, почему он использует так много оперативной памяти?

(Кстати, я использую только процессор)

1 Ответ

0 голосов
/ 08 апреля 2019

Количество изображений не является проблемой.Проблема заключается в вашем разрешении входного изображения (в вашем файле настроек .config).Вам нужно изменить значение высоты и ширины здесь (аналогично файлу .config):

image_resizer {
  # TODO(shlens): Only fixed_shape_resizer is currently supported for NASNet
  # featurization. The reason for this is that nasnet.py only supports
  # inputs with fully known shapes. We need to update nasnet.py to handle
  # shapes not known at compile time.
  fixed_shape_resizer {
    height: 1200
    width: 1200
  }
}

Установите меньшее значение ширины и высоты, и вы сможете тренироваться идеально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...