我一直在学习微软的Python CNTK教程,版本是2 Beta 9.0。我没有找到关于不同学习者可用参数的推荐值示例的良好文档。我已经能够在CNTK 103: Part B – 使用MNIST的前馈网络教程中成功运行以下学习者:
lr_per_minibatch=learning_rate_schedule(0.2, UnitType.minibatch) trainer = Trainer(z, ce, pe, sgd(z.parameters, lr=lr_per_minibatch)) lr_per_minibatch=learning_rate_schedule(0.2, UnitType.minibatch) trainer = Trainer(z, ce, pe, adagrad(z.parameters, lr=lr_per_minibatch)) lr_per_minibatch=learning_rate_schedule(0.05, UnitType.minibatch) trainer = Trainer(z, ce, pe, adam_sgd(z.parameters, lr=lr_per_minibatch, momentum=momentum_as_time_constant_schedule(700) )) lr_per_minibatch=learning_rate_schedule(0.2, UnitType.minibatch) trainer = Trainer(z, ce, pe, nesterov(z.parameters, lr=lr_per_minibatch, momentum=momentum_as_time_constant_schedule(700) )) lr_per_minibatch=learning_rate_schedule(0.1, UnitType.minibatch) trainer = Trainer(z, ce, pe, rmsprop(z.parameters, lr=lr_per_minibatch, gamma=0.90, inc=0.03, dec=0.03, max=0.1, min=0.1 ))
这些是有效的,但是否有人有关于每个训练器接收的参数的推荐值的好例子?
回答:
对于当前的学习者来说,最佳参数取决于数据和您要解决的问题。因此,很难提供好的建议。一个典型的建议是,如果一个学习率有效,那么所有更小的学习率也会有效,但您将需要运行更长时间(即,对数据进行更多次扫描)。