#python #python-3.x #pytorch #faster-rcnn
Вопрос:
Я использую «swin_base_patch4_window7_224_in22k» в timm в качестве основы маски r-cnn. ниже приведен мой код реализации.
backbone = timm.create_model(model_name="swin_base_patch4_window12_384_in22k", pretrained=True, num_classes=3) backbone.reset_classifier(num_classes=0, global_pool="") backbone.out_channels = backbone.num_features model = mask_rcnn.MaskRCNN(backbone=backbone, num_classes=3, rpn_anchor_generator=AnchorGenerator(sizes=((32, 64, 128, 256, 512),), aspect_ratios=((0.5, 1.0, 2.0),)), box_roi_pool=torchvision.ops.MultiScaleRoIAlign(featmap_names=['0'], output_size=7, sampling_ratio=2), mask_roi_pool=torchvision.ops.MultiScaleRoIAlign(featmap_names=['0'], output_size=14, sampling_ratio=2))
и я знал, что мое соединение было неправильным по следующему коду.
from torchinfo import summary batch_size = 2 summary( model, input_size=(batch_size, 3, 384, 384), col_names=["input_size", "output_size", "num_params"], )
ошибка заключается в следующем.(Я новичок на этом сайте. Как мне заключить длинную ошибку?)
Трассировка ошибки утверждения (последний последний вызов) ~/anaconda3/lib/python3.8/site-packages/torchinfo/torchinfo.py в forward_pass(модель, x, batch_dim, cache_forward_pass, устройство, **кварги) 260, если isinstance(x, (список, кортеж)): —gt; 261 _ = model.to(устройство)(*x, **квт) 262 установка(x, дикт):
~/anaconda3/lib/python3.8/пакеты сайтов/факел/nn/модули/модуль.py в _call_impl(self, *вход, **квт) 888 еще: —gt; 889 результат = self.forward(*вход, **квт) 890 для крючка в itertools.chain(
~/anaconda3/lib/python3.8/site-packages/torchvision/models/detection/generalized_rcnn.py в прямом(я, изображения, цели) 93 —gt; 94 функции = self.backbone(изображения.тензоры) 95, если есть(функции, факел.Тензор):
~/anaconda3/lib/python3.8/пакеты сайтов/факел/nn/модули/модуль.py в _call_impl(self, *вход, **квт) 888 еще: —gt; 889 результат = self.forward(*вход, **квт) 890 для крючка в itertools.chain(
~/anaconda3/lib/python3.8/site-packages/timm/models/swin_transformer.py в прямом(self, x) 535 оборотов вперед(self, x): —gt; 536 x = self.forward_features(x) 537 x = self.head(x)
~/anaconda3/lib/python3.8/site-packages/timm/models/swin_transformer.py в forward_features(self, x) 524 определения forward_features(self, x): —gt; 525 x = self.patch_embed(x) 526, если self.absolute_pos_embed не является None:
~/anaconda3/lib/python3.8/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs) 888 else: —gt; 889 result = self.forward(*input, **kwargs) 890 for hook in itertools.chain(
~/anaconda3/lib/python3.8/site-packages/timm/models/layers/patch_embed.py in forward(self, x) 32 B, C, H, W = x.shape —gt; 33 assert H == self.img_size[0] and W == self.img_size[1],
34 f»Input image size ({H}{W}) doesn’t match model ({self.img_size[0]}{self.img_size[1]}).»
AssertionError: Input image size (800800) doesn’t match model (384384).
The above exception was the direct cause of the following exception:
RuntimeError Traceback (most recent call last) in 1 from torchinfo import summary 2 batch_size = 2 —-gt; 3 summary( 4 model, 5 input_size=(batch_size, 3, 384, 384),
~/anaconda3/lib/python3.8/site-packages/torchinfo/torchinfo.py in summary(model, input_size, input_data, batch_dim, cache_forward_pass, col_names, col_width, depth, device, dtypes, row_settings, verbose, **kwargs) 192 input_data, input_size, batch_dim, device, dtypes 193 ) —gt; 194 summary_list = forward_pass( 195 model, x, batch_dim, cache_forward_pass, device, **kwargs 196 )
~/anaconda3/lib/python3.8/site-packages/torchinfo/torchinfo.py в forward_pass(модель, x, batch_dim, cache_forward_pass, устройство, **kwargs) 268, за исключением исключения в виде e: 269 исполняемых слоев = [слой за слоем в списке суммирования, если слой.выполнен] —gt; 270 вызывает ошибку времени выполнения( 271 «Не удалось запустить torchinfo. Более подробную информацию см. выше трассировки стека. «272 f»Выполненные слои до: {executed_layers}»
Ошибка времени выполнения: Не удалось запустить torchinfo. Более подробную информацию см. выше трассировки стека. Выполненные слои до: [Обобщенная форма: 1]
пожалуйста, подскажите мне правильный способ подключения.