2017-08-29 66 views
0

我正在使用TensorFlow中的一個函數,它將一組張量映射到另一個張量排列。例如,你可以寫:將附加變量傳遞給函數變量

data = data.map(_function) 

def _function(a, b, c): 
    return (a + 1, b, c) 

所以在這裏,你傳遞_function作爲一個函數變量地圖和地圖傳遞了三個張量,其突變以某種方式(在這裏,只需添加一個),並返回。


我的問題是:是否有辦法在其他變量傳遞給_Function?

如果我想執行a + x,而不是a + 1,那麼我怎麼能通過額外的變量?

你不能這樣做:data.map(_function(x))因爲那麼你傳遞的是函數的結果,而不是函數本身。

我已經嘗試過* arg,但是我找不到方法。任何幫助是極大的讚賞。

回答

3

您可以做某事像

def extra_func(x): 
    def _function(a, b, c): 
     return (a + x, b, c) 
    return _function 

所以,你可以做data.map(extra_func(x))

,或者您可以使用functools.partial解決一些函數的PARAMS

+0

除了現在在這種情況下,'_extra_func() ''正在通過'.map()'函數傳遞'a,b,c'。 –

+0

這是不明確你的意思 – meili

+0

我不能得到你的第一個方法來解決我的具體問題,但我可以用functools.partial修復它以添加更多的參數到函數。非常感謝你的幫助。 –