Caffe очень медленно загружает пакеты LMDB

Я создал базу данных LMDB, используя форк SSD-Caffe здесь. Я успешно создал каталоги VOC LMDB trainval/test LMDB и могу обучить модель.

Однако во время обучения загрузка данных из базы данных LMDB занимает необычно много времени. Например, при профилировании с использованием функции Caffe time с помощью этой команды:

ssdcaffe time --model "jobs/VGGNet/VOC0712/SSD_300x300/train.prototxt" --gpu 0 --iterations 20

Я понимаю, что проход вперед занимает в среднем 8,9 с, а проход назад - в среднем 0,5 с. При послойной проверке уровень ввода данных занимает большую часть этого времени — 8,7 с. Смотри ниже:

I1129 10:14:11.094445  8011 caffe.cpp:404]       data   forward: 8660.38 ms.
...
I1129 10:14:11.095383  8011 caffe.cpp:412] Average Forward pass: 8933.31 ms.
I1129 10:14:11.095389  8011 caffe.cpp:414] Average Backward pass: 519.549 ms.

Если я уменьшу размер пакета вдвое с 32 до 16, то время слоя вставки данных уменьшится примерно вдвое:

I1129 10:20:07.975527  8093 caffe.cpp:404]       data   forward: 3906.53 ms.

Это явно не предполагаемая скорость, и что-то не так. Любая помощь будет принята с благодарностью!


person DankMasterDan    schedule 29.11.2018    source источник


Ответы (1)


Нашел мою проблему:

Мои изображения были слишком большими. Стандартные изображения VOC, которые использовались в репозитории, имели размер ~ 350x500 пикселей, тогда как мои изображения были 1080x1920. Когда я уменьшил размер своих изображений в 3 раза (например, в 9 раз меньше пикселей), мой уровень приема данных занял всего 181 мс (ускорение в 48 раз по сравнению с предыдущим временем 8,6 с).

person DankMasterDan    schedule 29.11.2018