Не могу изменить якоря в более быстром RCNN - PullRequest
0 голосов
/ 10 июля 2019

Я новичок в pytorch, и я пытался установить несколько пользовательских якорей в моей сети Faster RCNN в pytorch.В основном, я использую магистраль resnet50, и когда я пытаюсь поставить якоря, я получаю ошибку несоответствия.

Это мой код:

backbone = torchvision.models.detection.backbone_utils.resnet_fpn_backbone('resnet50', True)
backbone.out_channels = 256

anchor_generator = AnchorGenerator(sizes=((4, 8, 16, 32, 64, 128),),
                                    aspect_ratios=((0.5, 1.0, 2.0),))

roi_pooler = torchvision.ops.MultiScaleRoIAlign(featmap_names=[0],
                                                    output_size=7,
                                                    sampling_ratio=2)

model = FasterRCNN(backbone, 
                   num_classes=10,
                   rpn_anchor_generator=anchor_generator,
                   box_roi_pool=roi_pooler)

Ошибка, котораяЯ получил следующее: фигура '[1440000, -1]' недопустима для ввода размером 7674336.

1 Ответ

0 голосов
/ 16 июля 2019

Хорошо, после некоторого изучения исходного кода PyTorch Faster RCNN я обнаружил, как они инициализируют якоря:

anchor_sizes = ((32,), (64,), (128,), (256,), (512,))
            aspect_ratios = ((0.5, 1.0, 2.0),) * len(anchor_sizes)

rpn_anchor_generator = AnchorGenerator(
                anchor_sizes, aspect_ratios
            )

Следуя той же схеме для моих пользовательских якорей,код будет:

anchor_sizes = ((4,), (8,), (16,), (32,), (64,), (128,))
            aspect_ratios = ((0.5, 1.0, 2.0),) * len(anchor_sizes)

rpn_anchor_generator = AnchorGenerator(
                anchor_sizes, aspect_ratios
            )

Будет работать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...