深度学习21天实战caffe学习笔记《9:Caffe 模型》

一个深度学习模型的参数包括三部分

  • 可学习参数:
  1. 又称可训练参数、神经网络权系数、权重,其数值由模型初始化参数、误差方向传播过程控制,一般不可人工干预。
  2. 在内存中用Blob对象保持,必要时以二级制ProtoBuffer文件(*.caffemodel)形态序列化并存储于磁盘上,便于进一步微调(finetune, 又称精调)、共享(例如参数服务器Parameter Server,PS)、性能评估(benchmark)
  • 结构参数:
  1. 包括卷积层/全连接层/下采样层数目、卷积核数目、卷积核大小等描述网络结构的参数,一旦设定好,在网络训练阶段不能更改:训练阶段网络结构参数和预测阶段参数很可能不同。
  2. 使用ProtoBuffer文件格式(*.prototxt)描述,网络初始化时通过该描述文件构建Net对象、Layer对象形成有向无环图结构,在Layer与Layer之间、Net输入源和输出源均为持有数据和中间结果的Blob对象
  • 训练超参数:
  1. 用来控制网络训练收敛的参数,训练阶段可以自动或手动调节以获得更好的效果,预测阶段不需要该参数。
  2. 使用ProtoBuffer文本格式(*.prototxt)描述,训练阶段利用该描述文件构建求解器(Solver)对象,该对象按照一定规则在训练网络时自动调节这些超参数值。

1、prototxt表示

修改:examples/mnist/lenet_train_test.prototxt
修改:examples/mnist/lenet_lr_solver.prototxt
训练:examples/mnist/lenet_lr_solver.prototxt

2、内存中的表示

solver.hpp中声明了SolverParameterparam,它是ProtoBuffer工具生成的结构体,用来解析lenet_lr_solver.prototxt

3、磁盘上的表示

  • Caffe使用ProtoBuffer二级制文件有最小文件尺寸,并由ProtoBuffer工具自动生成高效的序列化/反序列化接口(多语言支持, 包括C++、Java、Python),以及可读性好、兼容二进制文件的文本格式文件。
  • .caffemodel文件是在特定训练间隙保存的文件,包含当前网络各层的权值状态;
  • .solverstate是与.caffemodel一起产生的二级制文件,包含从上次停止点恢复训练模型所需的信息。

4、Caffe Model Zoo

由于规模更大、结构更加复杂的模型训练需要过硬的硬件计算能力和过硬的调参能力,所以可以使用前人已经训练好的模型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

女王の专属领地

您的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值