grimoire/mmdetection-to-tensorrt

Warning: Encountered known unsupported method torch.Tensor.__matmul__

yanghgai opened this issue · 6 comments

Hi, The error occurred when i convert swin-transformer based mmdetection to trt
INFO:mmdet2trt:Converting model Warning: Encountered known unsupported method torch.Tensor.__matmul__ Segmentation fault (core dumped)

Hi,
Convertor of torch.Tensor.__matmul__ is not added in matmul.py, you can add a decorator there to see if it works.
If it still does not work, please share the script and config so I can provide further help.

Thanks for your reply! The warning have solved by add a decorator in matmul.py, but Segmentation fault still occurs. I find a similar issue: grimoire/torch2trt_dynamic#19 (comment) . I think the reason is that there are unsupported methods in swin-transformer. The config of swin-transformer:https://github.com/SwinTransformer/Swin-Transformer-Object-Detection/blob/41bb93faa0d0758e46e4fe0e7d401e7f33d1861b/mmdet/models/backbones/swin_transformer.py

I see, I will try this weekend.
You can also convert some submodule in swin_transformer.py use torch2trt_dynamic to locate the unsupported ops.

I have update torch2trt_dynamic, please pull the latest repo and try again.

I have update torch2trt_dynamic, please pull the latest repo and try again.

Thanks! The Shape Error occurred in saving trt_model . CLI:mmdet2trt --save-engine=true --min-scale 1 3 480 480 --opt-scale 1 3 512 512 --max-scale 1 3 544 544 ../Swin-Transformer-Object-Detection-master1/configs/swin/cascade_mask_rcnn_swin_base_patch4_window7_mstrain_480-800_giou_4conv1f_adamw_3x_coco.py ../Swin-Transformer-Object-Detection-master1/work_dirs/cascade_mask_rcnn_swin_base_patch4_window7_mstrain_480-800_giou_4conv1f_adamw_3x_coco/epoch_25.pth ./epoch_25.pth. The version of TensorRT is TensorRT-7.0.0.11. The degug info is:
Loading model from config: ../Swin-Transformer-Object-Detection-master1/configs/swin/cascade_mask_rcnn_swin_base_patch4_window7_mstrain_480-800_giou_4conv1f_adamw_3x_coco.py
Use load_from_local loader
Wrapping model
opt_shape_param [[[1, 3, 480, 480], [1, 3, 512, 512], [1, 3, 544, 544]]]
INFO:mmdet2trt:Model warmup
INFO:mmdet2trt:Converting model
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.roll
Warning: Encountered known unsupported method torch.batch_norm
Warning: Encountered known unsupported method torch.nn.functional.batch_norm
Warning: Encountered known unsupported method torch.batch_norm
Warning: Encountered known unsupported method torch.nn.functional.batch_norm
Warning: Encountered known unsupported method torch.batch_norm
Warning: Encountered known unsupported method torch.nn.functional.batch_norm
Warning: Encountered known unsupported method torch.batch_norm
Warning: Encountered known unsupported method torch.nn.functional.batch_norm
Warning: Encountered known unsupported method torch.Tensor.new_tensor
Warning: Encountered known unsupported method torch.Tensor.new_tensor
Warning: Encountered known unsupported method torch.batch_norm
Warning: Encountered known unsupported method torch.nn.functional.batch_norm
Warning: Encountered known unsupported method torch.batch_norm
Warning: Encountered known unsupported method torch.nn.functional.batch_norm
Warning: Encountered known unsupported method torch.batch_norm
Warning: Encountered known unsupported method torch.nn.functional.batch_norm
Warning: Encountered known unsupported method torch.batch_norm
Warning: Encountered known unsupported method torch.nn.functional.batch_norm
Warning: Encountered known unsupported method torch.Tensor.new_tensor
Warning: Encountered known unsupported method torch.Tensor.new_tensor
Warning: Encountered known unsupported method torch.batch_norm
Warning: Encountered known unsupported method torch.nn.functional.batch_norm
Warning: Encountered known unsupported method torch.batch_norm
Warning: Encountered known unsupported method torch.nn.functional.batch_norm
Warning: Encountered known unsupported method torch.batch_norm
Warning: Encountered known unsupported method torch.nn.functional.batch_norm
Warning: Encountered known unsupported method torch.batch_norm
Warning: Encountered known unsupported method torch.nn.functional.batch_norm
Warning: Encountered known unsupported method torch.Tensor.new_tensor
Warning: Encountered known unsupported method torch.Tensor.new_tensor
[TensorRT] WARNING: TensorRT was linked against cuDNN 7.6.3 but loaded cuDNN 7.4.2
[TensorRT] INFO: Some tactics do not have sufficient workspace memory to run. Increasing workspace size may increase performance, please check verbose output.
[TensorRT] ERROR: shapeMachine.cpp (150) - Shape Error in executeReshape: 0 (reshape would change volume)
INFO:mmdet2trt:Conversion took 26.109650135040283 s
INFO:mmdet2trt:Saving TRT model to: ./epoch_25.pth
Traceback (most recent call last):
File "/home/hanwei-1/anaconda3/envs/swin_transformer/bin/mmdet2trt", line 33, in
sys.exit(load_entry_point('mmdet2trt', 'console_scripts', 'mmdet2trt')())
File "/home2/yhg/mmdetection-to-tensorrt-master/mmdet2trt/mmdet2trt.py", line 339, in main
torch.save(trt_model.state_dict(), args.output)
File "/home/hanwei-1/anaconda3/envs/swin_transformer/lib/python3.7/site-packages/torch/nn/modules/module.py", line 902, in state_dict
hook_result = hook(self, destination, prefix, local_metadata)
File "/home2/yhg/mmdetection-to-tensorrt-master/torch2trt_dynamic/torch2trt_dynamic/torch2trt_dynamic.py", line 449, in _on_state_dict
state_dict[prefix + 'engine'] = bytearray(self.engine.serialize())
AttributeError: 'NoneType' object has no attribute 'serialize'
Segmentation fault (core dumped)

Hello @grimoire , any updates on this? I think it would be great to have SWIN support!