【问题标题】:how to load reference .caffemodel for training如何加载参考 .caffemodel 进行训练
【发布时间】:2017-09-30 17:24:49
【问题描述】:

我正在使用 alexnet 来训练我自己的数据集。 caffe中的示例代码自带

bvlc_reference_caffenet.caffemodel
solver.prototxt
train_val.prototxt
deploy.prototxt

当我使用以下命令进行训练时:

./build/tools/caffe train --solver=models/bvlc_reference_caffenet/solver.prototxt

我想从 bvlc_reference.caffenet.caffemodel 中给出的权重开始。

我的问题是

  1. 我该怎么做?

  2. 从这些权重开始是个好主意吗?这会收敛得更快吗?如果我的数据与 Imagenet 数据集有很大不同,这会不会很糟糕?

【问题讨论】:

    标签: machine-learning neural-network deep-learning caffe


    【解决方案1】:

    1.
    为了使用现有的.caffemodel 权重进行微调,您需要使用--weights 命令行参数:

    ./build/tools/caffe train --solver=models/bvlc_reference_caffenet/solver.prototxt --weights=models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel 
    

    2.
    在大多数情况下,微调网络是一种非常推荐的做法,即使输入图像与“imagenet”照片完全不同。
    但是,您应该注意,在为您将要使用的原始权重进行训练时,做出了一些(非常合理的)假设。您应该确定这些假设是否仍然适用于您的任务。
    例如,大多数网络都是通过使用图像及其水平翻转的简单数据增强来训练的。但是,如果您的任务是distinguish between images that are flipped,您会发现很难进行微调。

    【讨论】:

    • 谢谢。我还有一个问题:我网络的最后一个全连接层输出 50 而不是 1000。有什么办法可以复制其余的而不是最后一层?
    • 如果你给最后一层的name 不同,caffe 就不会复制它的权重。
    • 太棒了!非常感谢!
    • 对了,你说的翻转图片是指垂直翻转吗?
    • @MoneyBall 翻转 = 沿 y 轴镜像。
    猜你喜欢
    • 1970-01-01
    • 2018-05-06
    • 2020-02-29
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2020-10-26
    • 1970-01-01
    相关资源
    最近更新 更多