Caffe: Data layer prefetch queue empty

我是利用ImageDataLayer直接从图片读入进行训练,开始训练时连续出现这个,虽然不影响训练,好奇就查了一下

问题描述:训练过程中出现blocking_queue.cpp:50] Data layer prefetch queue empty

原因: CPU数据读入慢于GPU计算,导致GPU处于空闲,使得计算速度下降,迭代时间间隔扩大。nvidia-smi显示为:GPU功率不断大幅度变化,GPU电压不稳定。

可能诱因:服务器同时在进行其他工作,如大规模读写数据(频繁使用IO),数据无法读入;CPU同时进行其他工作,负载极重,无法正常读取数据;CPU内存爆表,所有程序速度变慢。

解决办法:
1 把图片转为lmdb,可以加快数据读取速度,提高IO效率;
2 在1的基础上,可以使用prefetch参数对数据进行预取
data_param {
source: “./data/ilsvrc12/ilsvrc12_train_lmdb”
batch_size: 32
backend: LMDB
prefetch: 20
}

注意:直接读入图片的是使用ImageDataLayer
使用LMDB格式的数据是用DataLayer

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值