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

本文探讨了Caffe框架的基本结构,包括其有向无环图的网络设计及Layer层实现细节,并介绍了如何使用PyCaffe构建MNIST网络。此外,还详细解释了FCN项目中网络配置文件与训练流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天看了下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天


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值