使用 nms 时出错:“模块”对象不可调用

问题描述

我的代码是:

keep,num_to_keep,_ = nms(proposals,scores,overlap=nms_thres,top_k=nms_topk)

我收到此错误

File "C:\Users\RaSoul\LaneATT\lib\models\laneatt.py",line 129,in nms
    keep,top_k=nms_topk)
TypeError: 'module' object is not callable

我对错误感到困惑,这是为什么?

解决方法

似乎 nmsnms.py 文件中定义的函数。
导入 nms 时:

import nms

您将文件 nms.py 中的所有函数导入“范围”nms。因此,您应该像这样调用 nms 中定义的函数 nms.py

keep,num_to_keep,_ = nms.nms(proposals,scores,overlap=nms_thres,top_k=nms_topk)

或者,您可以从 nms 导入特定函数 nms.py

from nms import nms

这会将 nms 函数置于全局“作用域”中,您无需使用 nms.nms(...) 调用它,而只需使用 nms(...)