如何在theano函数中编写更新

时间:2016-01-20 19:34:24

标签: python theano

我是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)

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我找到了自己的答案,如果它可以帮助其他人,我会发布它。 您可以创建变量更新,然后使用.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))