调用函数:Tensor'object'不可调用

时间:2018-02-16 01:49:07

标签: python tensorflow deep-learning

假设我有一个名为test的函数,如下所示:

def test(X,W):
    ..do stuff
    return stuff

我使用model = test(X,W)调用。

当我第一次调用该函数时,我没有收到错误。但是,如果我再次调用该函数,则会收到错误'Tensor' object is not callable。基本上,调用代码如下所示:

model = test(X,W)
model1 = test(X,W)

我在model1的电话中收到了错误消息。

我想在再次调用该函数之前不需要再次重新定义该函数。经过一段时间的研究,我仍然没有找到解决方案。

如何修改我的功能或调用它以便能够调用该功能?

1 个答案:

答案 0 :(得分:2)

如果你命名一个与你的函数相同的变量(在“....更多东西在这里”部分),我可以看到这种情况会发生这种情况,这意味着它会在你第一次调用时工作,但会失败第二次。采用以下简化示例:

def test(x,y):
    global test
    test = x / 2 # random calculation
    return x + y

model = test(5,5)
model1 = test(10,10)

这会产生与问题中的错误非常相似的错误:

Traceback (most recent call last):
  File "SO.py", line 43, in <module>
    mode2 = test(10,10)
TypeError: 'float' object is not callable

解决方案是避免命名变量与函数相同。