2017-08-29 35 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修复它以添加更多的参数到函数。非常感谢你的帮助。 –