windows7下解决caffe check failed registry.count(type) == 1(0 vs. 1) unknown layer type问题
在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源码比较老,后面会更新到最新版本。
GitHub:https://github.com/fengbingchun/Caffe_Test
windows7下解决caffe check failed registry.count(type) == 1(0 vs. 1) unknown layer type问题的更多相关文章
- 【神经网络与深度学习】Caffe训练执行时爆出的Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type
自己建立一个工程,希望调用libcaffe.lib ,各种配置好,也能成功编译,但是运行就会遇到报错 F0519 14:54:12.494139 14504 layer_factory.hpp:77] ...
- caffe 训练时,出现错误:Check failed: error == cudaSuccess (4 vs. 0) unspecified launch failure
I0415 15:03:37.603461 27311 solver.cpp:42] Solver scaffolding done.I0415 15:03:37.603549 27311 solve ...
- caffe运行错误: im2col.cu:61] Check failed: error == cudaSuccess (8 vs. 0) invalid device function
错误: im2col.cu:61] Check failed: error == cudaSuccess (8 vs. 0) invalid device function 原因:由于Makefil ...
- Windows下解决github push failed (remote: Permission to userA/XXXX.git denied to userB.) 上传gitHub失败报错
Windows环境下解决 github push failed (remote: Permission to userA/XXXX.git denied to userB.) · 初学GitHub的朋 ...
- 【神经网络与深度学习】caffe静态链接库“Unknown layer type: Convolution (known types: )”和“ 磁盘空间不足”问题的解决办法
这一段时间把caffe在windows环境下编译了一下,tool里面的cpp全部编译成了exe.再用的时候有两个问题让我头疼了好长时间! 第一个问题 "db_lmdb.hpp:14] Che ...
- 配置SSD-caffe测试时出现“Check failed: error == cudaSuccess (10 vs. 0) invalid device ordinal”解决方案
这是由于GPU数量不匹配造成的,如果训练自己的数据,那么我们只需要将solver.prototxt文件中的device_id项改为自己的GPU块数,一块就是0,两块就是1,以此类推. 但是SSD配置时 ...
- CUDA报错: Cannot create Cublas handle. Cublas won't be available. 以及:Check failed: status == CUBLAS_STATUS_SUCCESS (1 vs. 0) CUBLAS_STATUS_NOT_INITIALIZED
Error描述: aita@aita-Alienware-Area-51-R5:~/AITA2/daisida/ssd-github/caffe$ make runtest -j8 .build_re ...
- 【CUDA开发】 Check failed: error == cudaSuccess (8 vs. 0) invalid device function
最近在复现R-CNN一系列的实验时,配置代码环境真是花费了不少时间.由于对MATLAB不熟悉,实验采用的都是github上rbg大神的Python版本.在配置Faster R-CNN时,编译没有问题, ...
- check failed status == cudnn_status_success (4 vs. 0) cudnn_status_internal_error
Check failed: error == cudaSuccess (30 vs. 0) unknown error 这个有可能是显存不足造成的,或者网络参数不对造成的 check failed ...
随机推荐
- ExpressRoute 路由要求
若要使用 ExpressRoute 连接到 Azure 云服务,需要设置并管理路由.某些连接服务提供商以托管服务形式提供路由的设置和管理.请咨询连接服务提供商,以确定他们是否提供此类服务.如果不提供, ...
- Oracle EBS 系统仅存在英文的环境
系统管理员 应用服务器 adadmin 编译
- SQLSERVER的 筛选索引(Fiter Index)
fiter index(筛选索引)是SQL Server的一项功能,可使此数据库与众不同. 筛选索引的概念 SQL Server中常用的索引是一种物理结构,它包含来自所有行的一组选定列的值 在一张桌子 ...
- [IIS | 用户权限] Connect as... 的设置
ApplicationPoolIdentity is actually the best practice to use in IIS7. It is a dynamically created, u ...
- css中padding与margin
CSS padding margin border属性详解 图解CSS padding.margin.border属性W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来 ...
- [翻译] USING GIT IN XCODE [1] 在XCODE中使用GIT[1]
USING GIT IN XCODE http://www.cimgf.com/2013/12/10/using-git-in-xcode/ Git has become a very popular ...
- 解决qpidd服务安装不上的问题
前几天对一个文件夹命名,忘记了qpidd的路径在这个文件夹的下面,导致后来qpidd用不了. 并且有打开计算机-管理-服务时,看到Advanced MessageQueuing Protocol 未启 ...
- session过期,拦截ajax请求并跳转登录页面
1.方法一 :1.1使用filter 和ajaxsetup 对ajax进行拦截并跳转登录页面 public void doFilter(ServletRequest request, ServletR ...
- 【转】.net core 一次坑爹的类库打包过程
自己遇到这个问题,记录一下,原文链接:http://www.cnblogs.com/Hai--D/p/5776463.html. 众所周知,.net core 跨平台类库引用一定要通过nuget获得. ...
- php中static静态变量的使用方法详解
php中的变量作用范围的另一个重要特性就是静态变量(static 变量).静态变量仅在局部函数域中存在且只被初始化一次,当程序执行离开此作用域时,其值不会消失,会使用上次执行的结果. 看看下面 ...