簡體   English   中英

是否可以根據Theano中參數的符號定義采用其他形式的函數

[英]Is it possible to define a function that takes a different form based on the sign of the parameter in Theano

我需要定義以下功能。 在Theano有可能做嗎? 在此處輸入圖片說明

更新:

為了澄清,我想定義一個可以采用上述形式的theano符號變量。 我知道我可以定義2個單獨的變量,並根據R的值使用它們中的任何一個。我的問題是可以定義采用上述形式的單個變量。 原因是我需要對該變量進行漸變以及在其他變量中使用它,如果我可以使用單個符號變量來定義它,它將大大簡化我的解決方案。

更新2:

lambda提出的解決方案不起作用。 這不會生成可稍后與Theano一起使用的符號變量:

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

在不了解有關Theano的細節的情況下,我記得將if-else語句轉換為線性方程式的一種方法是將if檢入變量本身,將其設置為01 然后,您可以執行以下操作:

sign = (R_t > 0) ## this is the part I don't know how exactly to do
(topEquation * sign) + (bottomEquation * (sign ^ 1))

它具有很好的屬性,如果sign1 (或True ),則bottomEquationbottomEquation ,乘以1 ^ 1或僅乘以0 同樣,如果sign0 / False ,則topEquation退出。

需要注意的是,盡管Theano可以幫助解決這一問題-它仍然會評估兩個方程,因此這可能會帶來效率問題(對於每個輸入,它都會運行兩個方程,然后忽略其中的一個)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM