zoukankan      html  css  js  c++  java
  • caffe实现自己的层

    http://blog.csdn.net/xizero00/article/details/52529341

    将这篇博客所讲进行了实现

    1.LayerParameter也在caffe.proto文件中

    2.头文件直接复制博客的,命名为image_scale_layer.hpp,然后放在caffe/include/caffe/layers下

    3.实现文件也是直接复制博客的,命名为image_scale_layer.cpp,放在caffe/src/caffe/layers下

    4.制作minist的lmdb数据,放在examples/mnist下,这个部分另一篇博客已经总结

    5.在examples目录下创建文件夹imagescale,复制博客中网络的prototxt,并放在这个目录下

    6.复制博客中solver的prototxt,放在examples/imagescale目录下

    7.复制博客的bash文件,放在caffe目录下。然后运行这个bash文件就完成

    按照博客的流程, 最后在运行shell脚本时出现了错误:

    我的solver的确在那个目录下,我也不知道为何会报这个错误。之后我将脚本的命令直接输入在终端,即:

    ./build/tools/caffe train --solver=examples/imagescale/solver.prototxt

    会出现以下错误

    这时我反应过来应该是我没有生成mnist_train_lmdb这个文件,按照之前博客的方式生成之后再执行这个命令就正确了。但执行那个脚本还是报一样的错误。

    之前我按照上一个博客的命令sudo sh ./examples/mnist/create_mnist.sh 生成mnist_train_lmdb,会报下面的错误:

    因为我是远程访问的服务器,所以会造成现在这种permission denied的情况

    总结整个流程:1.实现自己层的.hpp文件,并放在include/caffe/layers目录下

           2.实现自己层的.cpp或.cu,并放在src/caffe/layers目录下。注意:

               需要在.cpp添加注册的宏定义:1.INSTANTIATE_CLASS(MyNeuronLayer);  

                             2.REGISTER_LAYER_CLASS(MyNeuron); 

               如果有my_neuron_layer.cu,则添加:INSTANTIATE_LAYER_GPU_FUNCS(MyNeuronLayer);  

               都是在cpp的末尾加

               如果不加,会报以下错误:

               

           3.修改src/caffe/proto/caffe.proto文件,这个文件要修改两个地方:在LayerParameter加ID号,添加实现类所需要的参数。这样你在编写 train.prototxt 或者          test.prototxt 或者 deploy.prototxt 时就能把新 Layer 的描述写进去,便于修改网络结构和替换其他相同功能的 Layer 了

           4.编译

           5.你还可以在src/caffe/test/中增加layer的测试代码,对所写的layer前传和反传进行测试,就像另一篇自己写的博客caffe单独测试添加的layer,但写测试代码

             有点麻烦

         

    http://www.cnblogs.com/zf-blog/p/6551278.html

    中间写的过程怎么知道自己写的正确不正确,怎么去debug是我需要继续思考的

  • 相关阅读:
    HDU 4118:Holiday's Accommodation 简单树形DP(2011 Asia ChengDu Regional Contest )
    HDU 4276:The Ghost Blows Light 树形DP(2012 ACM/ICPC Asia Regional Changchun Online )
    HDU 3586:Information Disturbing 树形DP+二分
    HDU 4044:GeoDefense 树形DP+分组背包
    HDU 4003:Find Metal Mineral 树形DP+分组背包
    HDU 2196:Computer 树形DP
    Codeforces 681D:Gifts by the List (dfs+topsort)
    Codeforces 681C:Heap Operations
    跨浏览器注册事件和移除事件方案
    jquery 清空表达内容
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/7727481.html
Copyright © 2011-2022 走看看