Что делает аргумент «updates» при вызове таким образом?обновляет аргумент в функциях anano
f_grad_shared = theano.function([x, mask, y], cost, updates=zgup + rg2up,
name='adadelta_f_grad_shared')
Вся документация, я видел о «обновлении» аргументе в функции Theano говорить о парах вида (общих переменных, выражении, используемых для обновления общих переменного). Однако здесь есть только выражение, так как я знаю, какая общая переменная обновляется?
Я предполагаю, что общая переменная является каким-то неявным, но zgup
и rg2up
и зависит от различных общих переменных:
zipped_grads = [theano.shared(p.get_value() * numpy_floatX(0.),
name='%s_grad' % k)
for k, p in tparams.iteritems()]
running_grads2 = [theano.shared(p.get_value() * numpy_floatX(0.),
name='%s_rgrad2' % k)
for k, p in tparams.iteritems()]
zgup = [(zg, g) for zg, g in zip(zipped_grads, grads)]
rg2up = [(rg2, 0.95 * rg2 + 0.05 * (g ** 2))
for rg2, g in zip(running_grads2, grads)]
Этот код поступает из lstm.py
в http://deeplearning.net/tutorial/lstm.html
Благодарности