【神经网络与深度学习】caffe静态链接库“Unknown layer type: Convolution (known types: )”和“ 磁盘空间不足”问题的解决办法
这一段时间把caffe在windows环境下编译了一下,tool里面的cpp全部编译成了exe。再用的时候有两个问题让我头疼了好长时间!
第一个问题 “db_lmdb.hpp:14] Check failed: mdb_status == 0 (112 vs. 0) 磁盘空间不足。”
这问题是由于lmdb在windows下无法使用lmdb的库,所以要改成leveldb。
但是要注意,由于backend默认的是lmdb,所以你每一次用到生成的图片leveldb数据的时候,
都要把“--backend=leveldb”带上,这个很容易忘了,
还有在.prototxt中
data_param {
source: "./mysample_val_leveldb"
batch_size: 100
backend: LEVELDB //这个也要改掉的
}
第二个问题 “Unknown layer type: Convolution (known types: )”
这个问题是让我最头痛的,弄了很长时间,也看了很多解决方法!
现在解决了,回想起来,其实在stackoverflow的几个问题解决里是,都看到了“ /INCLUDE linker”,只是自己对很多东西不熟悉,才导致无法第一时间就看懂。
知道看了这位大神的博客http://www.cnblogs.com/coderzh/p/LinkAllSymbols.html,我才想到stackoverflow的那个“/include linker”是什么!
在微软的编译器中有的对于那些没有用到的变量和函数是不生效的!
caffe中的这些层模板,其实都已经注册了,只不过,没有引用没办法生效!
所以你要找到这些代码对应的强制链接,在你项目的主函数的头文件中添加一句“#pragma comment(linker, "/include:你的强制链接")”;就行了!
按照上面那位大神的方法,我看了一下,有2万多个要强制链接,所以是非常多的,想找到一两个非常不容易,所以我就用了上面大神的方法,直接将所有的强链接生成了头文件,引用进来项目来,就可以了!
问题就这样开心的解决了!!
相关文章
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- 【华为OD机试真题 python】静态扫描【2022 Q4 | 100分】
- 全局变量、局部变量和静态变量的说明
- Xcode 之自己编译静态库
- QT中静态成员函数
- [Django学习]Ajax访问静态页面
- 页面静态化工具类
- 全局变量、成员变量、类变量、静态变量、实例变量、局部变量的定义与区别
- HCIP第一天笔记——OSI模型,IP地址,静态路由
- 7个顶级静态代码分析工具
- Java反射学习总结三(静态代理)
- 织梦5.7 如何实现伪静态实战
- [CSAPP-II] 链接[符号解析和重定位] 静态链接 动态链接 动态链接接口
- 详解vue静态资源打包中的坑与解决方案
- 逆向知识第十二讲,识别全局变量,静态全局变量,局部静态变量,以及变量.
- Windows设置静态ip
- spring boot 开静态资源访问,配置视图解析器