caffe CPU模式下训练速度很慢

前面提到了利用caffe训练模型时,只用单个CPU核的问题,通过openblas的方式解决了,但即使多个核用上了,但速度还是超级慢。


就目前使用的网络而言,1min只能跑30 iter(1个iter 128个样本),即30*128 = 3840 样本/min, 为什么如此之慢呢?是不是代码出了问题,或者哪里的设置不对?


尝试和lenet进行对比,利用8核CPU根据lenet训练mnist,大概8min完成10000iter(一个iter 64个样本),即10000*64/8 = 80000 样本/min


从这里的对比来看,lenet的训练速度还是正常的,网上也有提出训练lenet花费了10min左右。那么为什么速度差别这么大呢?应该是网络计算量的原因。


通过https://dgschwend.github.io/netscope/#/editor可以查看网络的计算量,在左侧输入网络的deploy.prototxt文件即可,然后按shift + enter即可查看网络的计算量。
分析发现lenet网络的计算量为2.29M,而我们的网络的计算量为36.08M,这样就分析清楚了,3840*36.08 = 138547.2,而80000*2.29 = 183200,还是比较接近的。因此训练的速度应该就是这样了。


另外又将caffe下的训练速度和tensorflow下的训练进行对比,发现很奇怪的事情


  tensorflow    caffe
 GPU 700 iter/min 1500 iter/min 
 CPU 200 iter/min 20 iter/min 
难道caffe的CPU速度如此之慢?还不明白是为啥。




再做一次实验,在tensorflow和caffe利用mnist数据集训练lenet网络(网络结构根据caffe中的example修改,另外写一个tensorflow的lenet网络),看一下耗时。
得到的数据如下:
用mnist训练lenet, 10000 iter, 每个batch 64个样本


  GPU + CPU CPU 核数无限制 CPU 8核
 tensorflow 50s 219s 258s
 caffe 30s 1000s+
 900s


从这里可以看出,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值