Caffe非常缓慢地加载LMDB批次

时间:2018-11-29 18:30:26

标签: linux database deep-learning caffe lmdb

我使用SSD-Caffe分支here生成了LMDB数据库。我已经成功生成了VOC LMDB trainval / test LMDB目录,并且能够训练模型。

但是,在培训期间,从LMDB数据库加载数据的时间非常之长。例如,在使用Caffe的time函数进行概要分析时,使用以下命令:

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

我知道向前通过平均需要8.9s,向后通过平均需要0.5s。在逐层检查中,数据注入层将大部分时间花费在8.7s上。见下文:

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.

这显然不是预期的速度,出了点问题。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

发现了我的问题:

我的图像太大。回购使用的标准VOC图像约为350x500像素,而我的图像为1080x1920。当我将图片缩小3倍(例如,像素减少9倍)时,我的数据提取层仅花费了181ms(与之前8.6秒的速度相比提高了48倍)