caffe: layer & layers之区别
2017-03-01 11:09
369 查看
被这个区别坑惨了
之前在caffe里下载的caffe model的prototxt网络构造,里面的构架是用layer写的。后来想试一下VGGnet等高端构架,网上下载到的居然是layers模式的,坑了我好久,才找到错误根源,原来是layers的参数跟layer有所差异。
其实他们之间是可以相互转换的,虽然我不知道怎么转换的。caffe利用google开发的proto工具对自己的prototxt文件进行解析,解析过后生成cpp或者py的代码。所以虽然layers和layer的构造不同,其实就是参数的大小写 名字之类的有所差异,但是最后有用的代码是一样的。尽管如此,我们在同一个prototxt文件中只能使用一种格式,不能layer和layers混用。但是呢,deploy.prototxt和train_val.prototxt之间是可以不同的。在layer版本deploy中输入数据的格式为:“Input”,这个是有讲究的,跟训练的数据type不同,因为训练时用的“Data”,他们的主要差异在于,Data是有label的,而Input就是输入数据而已,很单纯,也就是他们的blobs维数不同,因此在deploy.prototxt中要用Input。我找了半天没有找到在layers层中Input应该替换为什么类型的type,因此我的deploy还是使用的layer结构,不过能够正常运行。
EMMA
SIAT
2017.03.01
之前在caffe里下载的caffe model的prototxt网络构造,里面的构架是用layer写的。后来想试一下VGGnet等高端构架,网上下载到的居然是layers模式的,坑了我好久,才找到错误根源,原来是layers的参数跟layer有所差异。
其实他们之间是可以相互转换的,虽然我不知道怎么转换的。caffe利用google开发的proto工具对自己的prototxt文件进行解析,解析过后生成cpp或者py的代码。所以虽然layers和layer的构造不同,其实就是参数的大小写 名字之类的有所差异,但是最后有用的代码是一样的。尽管如此,我们在同一个prototxt文件中只能使用一种格式,不能layer和layers混用。但是呢,deploy.prototxt和train_val.prototxt之间是可以不同的。在layer版本deploy中输入数据的格式为:“Input”,这个是有讲究的,跟训练的数据type不同,因为训练时用的“Data”,他们的主要差异在于,Data是有label的,而Input就是输入数据而已,很单纯,也就是他们的blobs维数不同,因此在deploy.prototxt中要用Input。我找了半天没有找到在layers层中Input应该替换为什么类型的type,因此我的deploy还是使用的layer结构,不过能够正常运行。
EMMA
SIAT
2017.03.01
相关文章推荐
- caffe学习笔记:caffe网络模型文件(.prototxt)layer与layers区别
- caffe各个层layer的区别和介绍 Vision Layers,Data Layers, Common Layers--caffe学习(9)
- caffe网络配置文件中layer和layers的区别
- make: *** [.build_release/cuda/src/caffe/layers/detection_output_layer.o] Error 1解决
- caffe的layers转layer
- make: ***No rule to make target 'include/layers/python_layer.hpp, needed by 'python/caffe/_caffe.so'
- caffe: train error: Serializing 25 layers--- Check failed: proto.SerializeToOstream(&output)
- caffe源码分析:softmax_layer.cpp && softmax_loss_layer.cpp
- Shell中的>/dev/null 2>&1 与 2>&1 >/dev/null 与&>/dev/null 的区别
- Java 按位与(&)和短路与(&&)按位或(|)和短路或(||)的区别总结
- AT&T汇编语言语法格式与Intel的区别
- JavaWeb Servlet&&Jsp的Get与Post区别
- nohup和&的区别
- char *p="abc" 与 char p[]="abc" 的区别
- 【jstl&el】jstl和EL的区别和使用
- Java中class是如何加载到JVM中的(Class.forName("name")和ClassLoader.loadClass("name")的区别)
- sendRedirect&forword的区别
- delete from table & truncate table 的区别
- 详解C++中的纯虚函数(虚函数区别)&多态性以及实例应用
- &与&&有什么区别?