在Windows7下调用vs2013生成的Caffe静态库时经常会提示Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type的错误,如下图:

这里参考网上资料汇总了几种解决方法:

1.      不使用Caffe的静态库,直接将Caffe的source加入到main工程中;

2.      将Caffe编译成动态库;

3.      使用Caffe静态库,新建一个caffe_layers_registry.hpp头文件,文件中的内容如下(部分代码段,需要将所有的层全部列出来),并且需要将此头文件include到其它文件的上面:

#include "caffe/common.hpp"
// may be need to include other head files

namespace caffe
{
    extern INSTANTIATE_CLASS(ConvolutionLayer);
    extern INSTANTIATE_CLASS(PoolingLayer);
    extern INSTANTIATE_CLASS(ReLULayer);
    extern INSTANTIATE_CLASS(TanHLayer);
	// other layer
	// may be need to REGISTER_LAYER_CREATOR()
}

4.      使用Caffe静态库,选中Caffe_Test工程 --> 右键,属性--> 通用属性 --> 引用 --> 添加引用 --> caffe(此caffe工程为caffe静态库工程) --> 项目引用属性 --> 链接库依赖项设置为True,使用库依赖项输入设置为True,如下图:

5.      使用Caffe静态库,在原有src/caffe/net.cpp文件中,添加如下代码段:

#define FORCE_REG(type) \
	extern LayerRegisterer<float> g_creator_f_##type; \
	extern LayerRegisterer<double> g_creator_d_##type; \
	LayerRegisterer<float> *__g_creator_f_##type = &g_creator_f_##type; \
	LayerRegisterer<double> *__g_creator_d_##type = &g_creator_d_##type

FORCE_REG(TanH);
FORCE_REG(Pooling);
FORCE_REG(ReLU);
FORCE_REG(Sigmoid);
FORCE_REG(Softmax);
FORCE_REG(Dropout);
FORCE_REG(Convolution);
FORCE_REG(Deconvolution);
FORCE_REG(Concat);
FORCE_REG(BNLL);
FORCE_REG(Flatten);
FORCE_REG(InnerProduct);
FORCE_REG(Eltwise);
FORCE_REG(Power);
FORCE_REG(LRN);
FORCE_REG(MemoryData);
FORCE_REG(Data);
FORCE_REG(Split);
FORCE_REG(Reshape);
FORCE_REG(Im2col);
FORCE_REG(Slice);
FORCE_REG(PReLU);
FORCE_REG(SoftmaxWithLoss);
FORCE_REG(Accuracy);

以上第4种、第5种方法亲自测试过可以正常调用Caffe静态库,但是依赖的Caffe源码比较老,后面会更新到最新版本。

GitHubhttps://github.com/fengbingchun/Caffe_Test

最新文章

  1. spring定时任务详解(@Scheduled注解)( 转 李秀才的博客 )
  2. 关于TCP/IP的三次握手和四次挥手解释
  3. StructureMap使用方法(转)
  4. NVlink
  5. 判断i在字符串中出现的次数(2016.1.12P141-1)
  6. hive中的常用方法(case,cast,unix_timestamp)
  7. centos python nginx uwsgi
  8. [转]linux下iftop工具的安装与使用详解(图文)——实时的网络流量,监控TCP/IP连接(单机)
  9. 可能性dp+减少国家HDU4336
  10. Spring MVC整合DWR
  11. 【Windows 10 应用开发】使用快捷访问键
  12. hdu5601 BestCoder Round #67 (div.2)
  13. Codeforces 1079C Playing Piano(记忆化搜索)
  14. vue 获取dom的css属性值
  15. mysql 开发基础系列9 存储引擎 MyISAM 介绍
  16. RMQ st算法 区间最值模板
  17. Django REST framework 第四章 Authentication
  18. 【LeetCode】区间合并
  19. Redis4.0新特性之-大KEY删除
  20. OnClick,OnClientClick和OnServerClick的区别

热门文章

  1. ORACLE RAC节点意外重启Node Eviction诊断流程图(11.2+)
  2. [翻译] FBNetworkReachability
  3. XtraEditors一、总体介绍
  4. php 实现八皇后问题
  5. [转]IE9.0或者360下js(JavaScript、jQuery)不能正确执行(加载),按F12后执行正常;Firefox下ajax的success返回数据data(json、string)无法获取
  6. Windows 7防火墙阻止了远程桌面连接的解决方法
  7. 【bzoj 4154】[Ipsc2015]Generating Synergy
  8. redis 使用案例
  9. windows 下搭建git服务器,及问题处理。
  10. mongodb的学习-2-简介