theano函数中如何写update

How to write update in theano function

我是 theano 的新手,所以也许这是一个简单的问题。 如果我有一个函数

f = theano.function(
          inputs=[x],
          outputs=[y],
          updates=update)

y 取决于我想使用

更新的 w
w = w + tr_rate * (pos_associations-neg_associations)

我会写

wparameters = [w]
update = [(wparam, 
           wparam + tr_rate * (pos_associations-neg_associations)) for wparam in wparameters]

它将使用更新规则更新函数 f。

但是如果 y 依赖于另一个变量,比如 z,我想使用不同的规则更新,比如

z = z + tr_rate*(x - vis)

如何将这两个规则组合在一起?

update += [(z, z + tr_rate*(x - vis))]
这个有用吗?

我找到了自己的答案,如果它可以帮助其他人,我会发布它。 您可以创建变量更新,然后使用 .append 函数定义新规则。

所以,而不是

wparameters = [w]
update = [(wparam, 
           wparam + tr_rate * (pos_associations-neg_associations)) for wparam in wparameters]

您可以追加一条新规则并写入:

wparameters  = [w]
zparameters = [z]


update = []
for wparam, zparam in zip(wparameters, bparameters):
    update.append((wparam, wparam + tr_rate*(pos_associations - neg_associations)))
    update.append((zparam, zparam + tr_rate*(x - vis))