【发布时间】:2018-08-06 14:57:56
【问题描述】:
我编写了一个程序,其中包含一种称为分布式随机梯度下降 (DRGD) 的算法。算法中有一些内部变量用于计算步长。训练算法应该比 DRGD 复杂得多,因此应该有更多的内部变量。如果我们保留这些变量,我们可以暂停训练并测试模型;然后,我们将再次恢复训练。
【问题讨论】:
-
这是一个错误的问题。我的错,对不起。
我编写了一个程序,其中包含一种称为分布式随机梯度下降 (DRGD) 的算法。算法中有一些内部变量用于计算步长。训练算法应该比 DRGD 复杂得多,因此应该有更多的内部变量。如果我们保留这些变量,我们可以暂停训练并测试模型;然后,我们将再次恢复训练。
【问题讨论】:
在使用 MXNet Gluon 进行训练期间,可以通过在 Trainer 类上调用 .save_states() 和 .load_states() 函数来保存训练器的状态并恢复训练。
这是一个例子:
trainer = gluon.Trainer(net.collect_params(), 'adam')
trainer.save_states('training.states')
trainer.load_states('training.states')
【讨论】:
如果您想跨多个设备(GPU 或机器)存储一些数据,您可以使用 KVStore。这是the tutorial 的使用方法。
请注意,KVStore 被认为是一项相当高级的功能,应谨慎使用。
我不确定,但您在 MXNet 世界中所谓的“培训师”实际上可能被称为“优化师”。所以,请考虑阅读this API page。
【讨论】: