pytorch maskrcnn 报错.

今天用 torchvision 官方提供的maskrcnn 版本是可以运行的.
单独可以跑, 后来合并到我的系统里就不能运行了, 报下面的错误. 搞了2个多小时.

class Compose(object):
    def __init__(self, transforms):
        self.transforms = transforms

    def __call__(self, image, target):
        for t in self.transforms: 
            image, target = t(image, target) # 在这里报错
        return image, target


报错内容如下
call takes 2 positional arguments but 3 were given

后来经过不断的跟踪和排查发现, 原来是.
Compose 这个类在transforms.py文件中又定义了一次.
我还以为这个类和 torchvision.transforms 中定义的Compose是一样的.
于是在我的代码里, 就把transforms的引用改成了 torchvision.transforms
结果就出错了,
两个文件中的Compose 类是不一样的
torchvision.transforms中的Compose类 call 方法的参数是2个, 而示例中重新写的Compose 的 call 方法的参数是1个. 所以就提示上面的错误…
排除方法也很简单, 将
import torchvision.transforms
改成了
import maskrcnn.transforms
就可以了.
maskrcnn在我这边是文件夹名.模块名

猜你喜欢

转载自blog.csdn.net/phker/article/details/109597776
今日推荐