如果想把caffe应用到实际的工程当中,我们需要自己建立工程。这个真的是把我虐哭了,各种错误!最后还好全都解决了。在这个还有感谢happynea大神。
至于如何建立工程,添加各种库我就不说了,我只说遇到的最要命的一个问题及解决办法!
至于缺少库,自己百度解决吧,我说的是层的注册问题,第一次编译连接全都没错,运行时报错,unkown layer type ,这是因为我们没有注册层,编译不知道层的存在。解决方法:https://github.com/happynear/caffe-windows/blob/master/FAQ.md
按照方面说的两种方法都能解决。
但是如果你用CPU_ONLY版本时,出现的问题和这个相反,是层类型多次注册了。哎正反被虐。这种情况下第一种方法能够解决问题,但是第二种方法不能解决问题,这时就需要我们修改几行代码了。
找到layer_factory.hpp文件
// Adds a creator.
static void AddCreator(const string& type, Creator creator) {
CreatorRegistry& registry = Registry();
//CHECK_EQ(registry.count(type), 0)
// << "Layer type " << type << " already registered.";
//下面是段测试程序
if (registry.count(type) == 0)
{
registry[type] = creator;
}
//registry[type] = creator;
}
找到solver_factory.hpp
// Adds a creator.
static void AddCreator(const string& type, Creator creator) {
CreatorRegistry& registry = Registry();
//CHECK_EQ(registry.count(type), 0)
//<< "Solver type " << type << " already registered.";
if (registry.count(type) == 0)
{
registry[type] = creator;
}
//registry[type] = creator;
}
修改代码后的稳定性,本人概不负责!如果你有好的方法,请留言回复,本人不胜感激!