一般情況下,請參閱我們的手冊how to use learners的詳細說明。複製涉及您的問題下面的部分:
momentum_as_time_constant_schedule
是一個傳統的API,一時間之間恆定的勢頭衰減因子的關係
momentum = exp(-minibatch_size/time_constant)
time_constant = minibatch_size/log (1/momentum)
有關詳細說明及其來源,請參閱手冊。另請參閱時間常數維基頁面:wikipedia link。
C.adam(parameters = res.parameters,lr = 0.4,momentum = 0.9,variance_momentum = 0。9,minibatch_size = 32)是說的一個方便的方法:
lr = C.learning_parameter_schedule(0.4, minibatch_size = 32)
momentum = C.momentum_schedule(0.9, minibatch_size = 32)
var_momentum = C.momentum_schedule(0.9, minibatch_size = 32)
C.adam(prameters=res.parameters, lr = lr, momentum = momentum, var_momentum = var_momentum, minibatch_size = 32)
C.momentum_sgd(parameters=res.parameters, lr=[0.4, 0.1, 0.001], momentum=[0.9], minibatch_size=32, epoch_size=512)
是說的方便的方法:
lr = C.learning_parameter_schedule([0.4, 0.1, 0.001], minibatch_size = 32, , epoch_size=512)
momentum = C.momentum_schedule([0.9], minibatch_size = 32, epoch_size=512)
C.momentum_sgd(parameters=res.parameters, lr = lr, momentum = momentum, minibatch_size = 32, epoch_size=512)
具有速率的列表,而不是一個單一的的含義數量是它是一個學習速率(動量)的時間表,而不是單一的學習速率(或動量):不同的學習速率(動量,變量動量)將應用於不同的樣本:
- 在該示例中,
0.4
將應用於前512個採樣;將從第513個樣本到第1024個樣本應用0.1
;將從第1025個樣本到第1536個樣本應用0.001
。
- 通常,列表
[p_1, p_2, .., p_n]
,列表中的第i個參數p_i
用作從(epoch_size * (i-1) + 1)
個樣本到(epoch_size * i)個樣本的值。如果列表包含一對,即[(num_epoch_1, p_1), (num_epoch_n, p_2), .., (num_epoch_n, p_n)]
,則第i個參數用作從第(epoch_size * (num_epoch_0 + ... + num_epoch_2 + ... + num_epoch_(i-1) + 1)
個樣本到第(epoch_size * num_epoch_i)
個樣本(以num_epoch_0 = 0
作爲特殊初始化)的值。
查看learning_parameter_schedule的詳細解釋。