是否可以根据Theano中参数的符号定义一个采用不同形式的函数

时间:2016-06-16 13:15:14

标签: python theano

我需要定义以下功能。在Theano有可能做到吗? enter image description here

更新

澄清我要求定义一个可以采用上述形式的theano符号变量。我理解我可以定义2个单独的变量,并根据R的值使用它们。我的问题是,可以定义一个采用上述形式的变量。原因是我需要获取此变量的渐变以及在其他变量中使用它,如果我可以使用单个符号变量来定义它,那么它将大大简化我的解决方案。

更新2:

使用 lambda 建议的解决方案不起作用。这不会生成一个符号变量,以后可以与Theano一起使用:

r = T.dscalar('r')
dd = lambda r: r + 1 if r > 0 else r - 1 

1 个答案:

答案 0 :(得分:1)

在不知道有关Theano的细节的情况下,我记得将option_settings: aws:elasticbeanstalk:container:nodejs: NodeCommand: "npm start" 语句转换为线性方程式的一种方法是让if-else检查变量本身,将其设置为if0。然后,您可以执行以下操作:

1

如果sign = (R_t > 0) ## this is the part I don't know how exactly to do (topEquation * sign) + (bottomEquation * (sign ^ 1)) sign(或1),True将会退出,乘以bottomEquation或仅1 ^ 1。同样,如果0topEquation / sign,则会0退出。

一个注意事项,虽然也许Theano可以帮助解决这个问题 - 它仍然会评估这两个方程式,所以这可能会带来效率问题(对于每一个输入,它运行两个方程式,然后忽略其中一个)。