批处理模式在Caffe

Batch processing mode in Caffe

本文关键字:Caffe 模式 批处理      更新时间:2023-10-16

我想使用Caffe库来提取图像特征,但我有性能问题。我只能使用CPU模式。我被告知Caffe支持批处理模式,在这种模式下处理一张图像所需的平均时间要慢得多。

我正在调用以下方法:

const vector<Blob<Dtype>*>& 
Net::Forward(const vector<Blob<Dtype>* > & bottom, Dtype* loss = NULL);

,我放入一个大小为1的向量,包含以下维度的单个blob - (num: 10, channels: 3, width: 227, height: 227)。它以与官方python包装器相同的方式表示过采样的单个图像。

这可以工作并给出正确的结果。然而,它太慢了。

每当我尝试发送一个包含多个blob(相同维度)的向量时,我得到以下错误:

[p]尝试复制不同大小的blobs .
检查失败堆栈跟踪:

我如何使Caffe处理我的图像在批处理?

如果你想要喂养更大的批次,你需要bottom中的第一个(也是唯一一个)blob来拥有num>10。用num=20喂一个斑点与用oversample=10喂两个输入相同。当然,您必须根据您正在使用的oversampling手动执行平均。

此外,您可能希望将deploy.prototxt文件中的第一个输入维度从10更改为更大的值(取决于您的机器的内存容量)