深度学习模型推理速度缓慢原因分析

碰到一个问题,在训练好一个模型后,实际使用时,即只有前向推理过程,速度缓慢,大概1s能执行100次。之所以会认为推理的速度变慢,主要原因在于,在训练模型时,会在训练集和验证集上,获取算法的准确率,那么就需要进行前向推理。在这里,会有大概500,000个样本,而只需要200s左右,大约2500/s。

那么为什么在实际进行推理时速度会变慢这么多呢?

分析后发现,主要原因有二:

  • 1、训练模型时,读取的数据是tfrecord格式的数据,有其它线程负责把数据导入内存,大大降低了从硬盘读取内存的开销;

  • 2、在训练模型,是按照batch读取数据,然后输入到网络中进行批量处理,一个batch大小为128,而在实际使用时,一般是单个样本输入,这就导致了推理速度变慢。

对于原因1,可以采用相似的方式,另起线程读数据,然后再处理。

对于原因2,如果实时性要求不是特别高,能够缓冲一部分再做处理,那么可以按照batch批处理的方式完成。可以大大加快运行速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值