更新
澄清我要求定义一个可以采用上述形式的theano符号变量。我理解我可以定义2个单独的变量,并根据R的值使用它们。我的问题是,可以定义一个采用上述形式的变量。原因是我需要获取此变量的渐变以及在其他变量中使用它,如果我可以使用单个符号变量来定义它,那么它将大大简化我的解决方案。
更新2:
使用 lambda 建议的解决方案不起作用。这不会生成一个符号变量,以后可以与Theano一起使用:
r = T.dscalar('r')
dd = lambda r: r + 1 if r > 0 else r - 1
答案 0 :(得分:1)
在不知道有关Theano的细节的情况下,我记得将option_settings:
aws:elasticbeanstalk:container:nodejs:
NodeCommand: "npm start"
语句转换为线性方程式的一种方法是让if-else
检查变量本身,将其设置为if
或0
。然后,您可以执行以下操作:
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
。同样,如果0
为topEquation
/ sign
,则会0
退出。
一个注意事项,虽然也许Theano可以帮助解决这个问题 - 它仍然会评估这两个方程式,所以这可能会带来效率问题(对于每一个输入,它运行两个方程式,然后忽略其中一个)。