Caffe的Github页面包含一个Windows分支。我已经采取了这个分支并创建了一个Windows DLL。它基于https://github.com/BVLC/caffe/blob/master/examples/cpp_classification/classification.cpp而失败。
DLL工作并输出正确的分类结果。但它比pyCaffe接口慢1.5-5倍。非常有趣的是,pyCaffe接口在所有测试的计算机上使用AlexNet对于四个图像大约需要1秒钟。 DLL时间范围从1.5秒到2秒到4秒。
我们测量了
循环前后的时间(使用Easily measure elapsed time)template <typename Dtype> Dtype Net<Dtype>::ForwardFromTo(int start, int end)
此函数驻留在https://github.com/BVLC/caffe/blob/master/src/caffe/net.cpp中,由CPP和Python代码调用。
我们已经使用Visual Studio 2013将Caffe编译为没有GPU支持的32位程序
到目前为止我们检查过的可能事情。
答案 0 :(得分:1)
我们总结如下:Caffe使用GLog。 GLog有致命警告,可能看起来像这样
CHECK(a<=b) << "a must be bigger than b";
这些警告让程序崩溃,几乎无法捕获。为此,我们创建了一个替换GLog的类。它很简单,使用std :: stringstream。谷歌做得很聪明。只要条件为真,就不会评估右侧。
他们使用(void)0解决了它。我们错过了那部分。当我想在这里发布分析数据时,我意识到由于&lt;&lt;&lt;&lt;&lt;&lt;运营商。我们开始更仔细地查看分析数据并增加函数调用的数量,这样每个数字都会变得更大更清晰。这导致我们找到解决方案。