Respostas no Fórum
- AutorPosts
Gratidão professor! Consegui resolver, atualizou a versão do projeto PointRend do Detectron2 e funcionou perfeitamente.
Muito obrigado!Consegui evoluir bastante em treinar um modelo com PointRend personalizado, mas cheguei em um ponto onde estou enfrentando muita dificuldade para resolver. Consegue me ajudar?
Esse é o código de erro gerado no momento do treinamento:
<hr />
RuntimeError Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_14980\4032920361.py in <module>
—-> 1 trainer.train()C:\Data Science\Project\idtise.me\Modelagem\Modelo de segmentacao\Detectron 2 – PointRend\detectron2\engine\defaults.py in train(self)
482 OrderedDict of results, if evaluation is enabled. Otherwise None.
483 “””
–> 484 super().train(self.start_iter, self.max_iter)
485 if len(self.cfg.TEST.EXPECTED_RESULTS) and comm.is_main_process():
486 assert hasattr(C:\Data Science\Project\idtise.me\Modelagem\Modelo de segmentacao\Detectron 2 – PointRend\detectron2\engine\train_loop.py in train(self, start_iter, max_iter)
147 for self.iter in range(start_iter, max_iter):
148 self.before_step()
–> 149 self.run_step()
150 self.after_step()
151 # self.iter == max_iter can be used byafter_train
toC:\Data Science\Project\idtise.me\Modelagem\Modelo de segmentacao\Detectron 2 – PointRend\detectron2\engine\defaults.py in run_step(self)
492 def run_step(self):
493 self._trainer.iter = self.iter
–> 494 self._trainer.run_step()
495
496 def state_dict(self):C:\Data Science\Project\idtise.me\Modelagem\Modelo de segmentacao\Detectron 2 – PointRend\detectron2\engine\train_loop.py in run_step(self)
271 If you want to do something with the losses, you can wrap the model.
272 “””
–> 273 loss_dict = self.model(data)
274 if isinstance(loss_dict, torch.Tensor):
275 losses = loss_dict~\.conda\envs\detectron2\lib\site-packages\torch\nn\modules\module.py in _call_impl(self, *input, **kwargs)
887 result = self._slow_forward(*input, **kwargs)
888 else:
–> 889 result = self.forward(*input, **kwargs)
890 for hook in itertools.chain(
891 _global_forward_hooks.values(),C:\Data Science\Project\idtise.me\Modelagem\Modelo de segmentacao\Detectron 2 – PointRend\detectron2\modeling\meta_arch\rcnn.py in forward(self, batched_inputs)
165 proposal_losses = {}
166
–> 167 _, detector_losses = self.roi_heads(images, features, proposals, gt_instances)
168 if self.vis_period > 0:
169 storage = get_event_storage()~\.conda\envs\detectron2\lib\site-packages\torch\nn\modules\module.py in _call_impl(self, *input, **kwargs)
887 result = self._slow_forward(*input, **kwargs)
888 else:
–> 889 result = self.forward(*input, **kwargs)
890 for hook in itertools.chain(
891 _global_forward_hooks.values(),C:\Data Science\Project\idtise.me\Modelagem\Modelo de segmentacao\Detectron 2 – PointRend\detectron2\modeling\roi_heads\roi_heads.py in forward(***failed resolving arguments***)
741 # heads. But whenself.train_on_pred_boxes is True
, proposals will contain boxes
742 # predicted by the box head.
–> 743 losses.update(self._forward_mask(features, proposals))
744 losses.update(self._forward_keypoint(features, proposals))
745 return proposals, lossesC:\Data Science\Project\idtise.me\Modelagem\Modelo de segmentacao\Detectron 2 – PointRend\detectron2\modeling\roi_heads\roi_heads.py in _forward_mask(self, features, instances)
844 else:
845 features = {f: features[f] for f in self.mask_in_features}
–> 846 return self.mask_head(features, instances)
847
848 def _forward_keypoint(self, features: Dict[str, torch.Tensor], instances: List[Instances]):~\.conda\envs\detectron2\lib\site-packages\torch\nn\modules\module.py in _call_impl(self, *input, **kwargs)
887 result = self._slow_forward(*input, **kwargs)
888 else:
–> 889 result = self.forward(*input, **kwargs)
890 for hook in itertools.chain(
891 _global_forward_hooks.values(),C:\Data Science\Project\idtise.me\Modelagem\Modelo de segmentacao\Detectron 2 – PointRend\detectron2\projects\point_rend\mask_head.py in forward(self, features, instances)
236 point_fine_grained_features, point_coords, coarse_mask
237 )
–> 238 losses[“loss_mask_point”] = roi_mask_point_loss(point_logits, instances, point_labels)
239 return losses
240 else:C:\Data Science\Project\idtise.me\Modelagem\Modelo de segmentacao\Detectron 2 – PointRend\detectron2\projects\point_rend\point_head.py in roi_mask_point_loss(mask_logits, instances, points_coord)
62 scale = torch.tensor([w, h], dtype=torch.float, device=gt_bit_masks.device)
63 points_coord_grid_sample_format = (
—> 64 points_coord[idx : idx + len(instances_per_image)] / scale
65 )
66 idx += len(instances_per_image)RuntimeError: The size of tensor a (196) must match the size of tensor b (2) at non-singleton dimension 1
- AutorPosts