gpt4 book ai didi

machine-learning - 如何在CAFFE中编写满足给定条件的solver.prototxt?

转载 作者:行者123 更新时间:2023-11-30 09:51:36 25 4
gpt4 key购买 nike

我正在编写遵循论文https://arxiv.org/pdf/1604.02677.pdf规则的solver.prototxt

In the training phase, the learning rate was set as 0.001 initially and decreased by a factor of 10 when the loss stopped decreasing till 10−7. The discount weight was set as 1 initially and decreased by a factor of 10 every ten thousand iterations until a marginal value 10−3.

注意,Caffe中的折扣权重为loss_weight。根据上述信息,我将求解器编写为

train_net: "train.prototxt"
lr_policy: "step"
gamma: 0.1
stepsize: 10000
base_lr: 0.001 #0.002

在train.prototxt中,我也设置了

layer {
name: "loss"
type: "SoftmaxWithLoss"
bottom: "deconv"
bottom: "label"
top: "loss"
loss_weight: 1
}

但是,我仍然不知道如何设置求解器以满足规则“当损失停止减少直到10−7时减少10倍”“减少每一万次迭代因子为 10,直到边际值为 10−3"。我没有找到任何caffe规则可以做到这一点作为引用:

// The learning rate decay policy. The currently implemented learning rate
// policies are as follows:
// - fixed: always return base_lr.
// - step: return base_lr * gamma ^ (floor(iter / step))
// - exp: return base_lr * gamma ^ iter
// - inv: return base_lr * (1 + gamma * iter) ^ (- power)
// - multistep: similar to step but it allows non uniform steps defined by
// stepvalue
// - poly: the effective learning rate follows a polynomial decay, to be
// zero by the max_iter. return base_lr (1 - iter/max_iter) ^ (power)
// - sigmoid: the effective learning rate follows a sigmod decay
// return base_lr ( 1/(1 + exp(-gamma * (iter - stepsize))))
//
// where base_lr, max_iter, gamma, step, stepvalue and power are defined
// in the solver parameter protocol buffer, and iter is the current iteration.

如果有人知道,请给我一些编写solver.prototxt以满足上述条件的指南。

最佳答案

学习率降低

部分问题在于,当损失停止减少直到 10e−7 时,减少了 10 倍这句话不太有意义。我认为,也许作者试图说,每当损失停止减少时,他们就会将学习率降低 10 倍,直到学习率达到 10e-7。

如果是这样,那么这是一个手动过程,而不是您可以使用 Caffe 参数进行选择的过程。最重要的是,“当损失停止减少时”是一个重要的判断,尽管长底移动平均线会给您一个很好的指示。我希望作者手动完成此操作,从检查点停止并重新启动训练。

可以使用step的学习率衰减策略获得类似的效果:将gamma设置为0.1,并将step参数设置得足够高以确保训练达到水平每次降息前关闭。这会浪费一些计算机时间,但可能会为您省去一些麻烦。

折扣重量

在Caffe中,损失权重仅仅是模型中各种损失之间的相对权重,用于实现最终损失统计的线性因素。 Caffe 不提供权重的运行时更改。也许这是作者手工调整的其他内容。

我尝试阅读论文中两个提及“折扣重量”的区域,但发现很难阅读。我会等到有人校对和编辑该论文的语法和清晰度。同时,我希望这个答案对您有所帮助。

您可以找到更多信息here .

关于machine-learning - 如何在CAFFE中编写满足给定条件的solver.prototxt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44184099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com