乘以任何人能向我解释什么是从这里开始的这两行代码背后的含义:https://github.com/Newmu/Theano-Tutorials/blob/master/4_modern_net.pyTheano零
acc = theano.shared(p.get_value() * 0.)
acc_new = rho * acc + (1 - rho) * g ** 2
是不是一个错误?为什么我们实例化acc为零,然后在下一行乘以rho?看起来它不会达到任何目的,并保持为零。如果我们用“acc”替换“rho * acc”,会有什么区别吗?
全功能在下面给出:
def RMSprop(cost, params, lr=0.001, rho=0.9, epsilon=1e-6):
grads = T.grad(cost=cost, wrt=params)
updates = []
for p, g in zip(params, grads):
acc = theano.shared(p.get_value() * 0.)
acc_new = rho * acc + (1 - rho) * g ** 2
gradient_scaling = T.sqrt(acc_new + epsilon)
g = g/gradient_scaling
updates.append((acc, acc_new))
updates.append((p, p - lr * g))
return updates