Aktualizacje funkcji funkcji Theano przyjmują listę par, w której każda para określa współdzieloną zmienną symboliczną i nowe wyrażenie po obliczeniu wyników funkcji. Zastanawiam się, czy jest jakaś procedura aktualizacji. Porządek będzie ważny, jeśli nowe wyrażenie zmiennej symbolicznej będzie się nawzajem opierało, a procedura aktualizacji użyje zaktualizowanej zmiennej symbolicznej do aktualizacji innych zmiennych symbolicznych, które się na niej opierają. Dla przykłady, lista ta siła wygląda tak,Kolejność aktualizacji listy funkcji funkcji aano
[(a, b + a), (b, b+ 1)]
Pisałem jakąś funkcję do testowania tego produktu. W rezultacie wydaje się wskazywać, że zawsze używać starego wartości w wyrażeniu (drugi termin w parze), aby zaktualizować zmienną symboliczne w pierwszym okresie, tj
a_new = b_old + a_old
b_new = b_old + 1
Czy to jest zdefiniowane zachowanie?
Jednak uważam realizację pędu here, Oto kody do generowania listę aktualizacji i param_update zmienne symboliczne
param_update = theano.shared(param.get_value()*0., broadcastable=param.broadcastable)
updates += [(param, param - learning_rate*param_update),
(param_update, momentum * param_update + (1. - momentum)*T.grad(cost, param))
Następnie w pierwszej iteracji, param nie będą aktualizowane, ponieważ param_updates są wszystkie zero. W moim rozumieniu parametr param_update powinien zostać najpierw zaktualizowany, a następnie wykorzystany do aktualizacji parametrów.