我的caffe学习之路<第二天>

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/change_things/article/details/53128474

今天看了下caffe的caffe-windows-master/include/caffe下的net.hpp和layer.hpp,可以看到他的注释都是写在头文件里的,.cpp文件中没有太多注释(风格真好,不像我们写的代码只有一个.cpp或者几个.cpp)


可以看出caffe的net是一个有向无环图,layer层是其中的节点。


layer层有很多可以实现的地方,注释中也给了说明,主要是虚函数LayerSetUp,Reshape,ToProto,Forward_cpu/gpu,Backward_cpu/gpu和一些对blob的操作,搜索virtual能看到可以继承并实现的这些函数,需要实现的函数基本都有注释。


尴尬的是caffe代码量太多,重新学习的话感觉时间有点不够。所以我想从fcn对caffe的使用入手,边看caffe框架边改fcn代码,感觉这样更有效率,毕竟fcn已经装好了Orz......


fcn的主要用到了pycaffe的接口,一个使用pycaffe构建minst网络的例子


fcn中每一个训练model的文件夹里基本是这几个文件:

     train/val.prototxt :网络的配置文件

     net.py :用于构建网络,从上面的例子中可以看出运行这个.py文件会产生上面的两个prototxt文件

     solver.prototxt :solve.py的配置文件

     solve.py :用于训练网络,运行这个可以开始训练,里面用到了solver.prototxt里的一些参数,需要改下以适合自己的机器(如果你有高性能nvidia显卡,当我没说......),网络的结构由上述的train/val.prototxt定义。


刚刚运行了下net.py结果缺少coord_map,因为我的caffe是windows版的,版本旧,如果想运行net.py需要新一点的caffe,不过官网的是linux版的(哭瞎),但不跑这个net.py也是可以的,只要.prototxt文件正确就能跑起来solve.py......


明天根据prototxt文件找找pycaffe是如何定义一个新Layer的,感觉比在caffe里写一个新Layer简单些。


Talk is cheap. Show me the code. —— Linus


离deadline还有:66天


阅读更多
换一批

没有更多推荐了,返回首页