* Fix the bug met in using nasfpn
Fix the bug met in using nasfpn which is mentioned at https://github.com/open-mmlab/mmdetection/issues/5987.
Avoid the strong restrictions of _resize function in BaseMergeCell:
1. When Downsampling the feature map, the feature map's shape must be divisible by the target size. We pad zero around feature map before max_pool2d opt to make it always divisible. (line 102 ~ 107)
2. Considering the different downsampling scale of H and W, shape[-2] and shape[-1] are involed in the definition of kernel_size. (line 110)
* Update merge_cells.py
check flake8 & isort
* Update merge_cells.py
* Update merge_cells.py
yapf
* Update mmcv/ops/merge_cells.py
X_pad rename to padding_x
Co-authored-by: Mashiro <57566630+HAOCHENYE@users.noreply.github.com>
* Update merge_cells.py
format the code style after renameing the X_pad to padding_x
* Update test_merge_cells.py
Mainly test the downsampling resize in BaseMergeCell. The smaller target size is set to (14, 7), the classical feature map's size in the last few stages of the backbone, which will product different downsampling scales in different dims.
* Update test_merge_cells.py
add "# Copyright (c) OpenMMLab. All rights reserved."
* Update merge_cells.py
format the variable name
* Update test_merge_cells.py
Testing divisible and indivisible situations simultaneously
* Update mmcv/ops/merge_cells.py
fix the bug when h is indivisible and w is divisible, the pad_w will be padded unreasonable.
Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
* Update mmcv/ops/merge_cells.py
fix the bug when w is indivisible and h is divisible, the pad_h will be padded unreasonable.
Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
* fix undefined error
* Update merge_cells.py
make pad_h, pad_w more readable
* Update test_merge_cells.py
use @pytest.mark.parametrize instead of 'for' methor
* Update merge_cells.py
* Update test_merge_cells.py
isort
* Update merge_cells.py
isort
Co-authored-by: Mashiro <57566630+HAOCHENYE@users.noreply.github.com>
Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
* add rotated_feature_align cpu implementation
* add rotated_feature_align onnxruntime implementation
* Update code for advices from grimoire
Remove useless comment from mmcv/ops/csrc/pytorch/cpu/rotated_feature_align.cpp
Replace ambiguous function name atomicAdd in mmcv/ops/csrc/pytorch/cpu/rotated_feature_align.cpp
Simplify unit test with parameter in tests/test_ops/test_rotated_feature_align.py
Use fma in interpolate in mmcv/ops/csrc/onnxruntime/cpu/rotated_feature_align.cpp mmcv/ops/csrc/pytorch/cpu/rotated_feature_align.cpp
* Inline the function to reduce the overhead of the function call
Use fma in interpolate
* fix interface for RoIAlignRotated
* Add a unit test for RoIAlignRotated
* Make a unit test for RoIAlignRotated concise
* fix interface for RoIAlignRotated
* Refactor ext_module.nms_rotated
* Lint cpp files
* Fix batched_nms to support nms_rotated
* Update test code for batched_nms with nms_rotated
* Edit indexing the score in nms
* Use -1 indexing for batched_nms
* skip nms
* judge at beginning
* add test
* remove else
* add more details in docstr including version not
* fix unitest
* fix doc
* fix doc
* fix typo
* resove conversation
* fix link
* [Fix] fix deform conv by add argument
* [Fix] replace useless func with np.repeat and add necessary comment
* [Fix] reduce batch_size and remove useless lines and modify some var name
* [Fix] change position of comments
* [Fix] add im2col_step in the docstring and add two test cases
* [Fix] fix docstring and add comments for test cases
* [Fix] fix docstring
* [Fix] add note, fix issue link and other details
* [Fix] fix docstring details
* [Fix] fix links in docstring
* [Fix] fix docstring details
* DCN cpu version
* add modulated dcn cpu version
* move deform_conv_shape_check to deform conv utils
* add inline to deform_conv_shape_check
* add tests
* run linter
* add newline at file end
* run pre-commit against modulated deform conv cpp
* update saconv test
* run clang-format
* remove cuda device inline
* refactor dcn cuda/cpu functions
* remove DCN util
* remove DCN util hpp from all included files
* Addressing PR comment by refactoring modulated-DCN
* fix lint in cpp files
* add modulated_deform_conv in onnxruntime support
* Add docs descriptions
* Add gpu test in test_onnx.py
* code format
* remove new usage and move if outside for loop
* use memset when bias is nullptr
* improve digit_version & use it for version_checking
* more testing for digit_version
* setuptools >= 50 is needed
* fix CI
* add debuging log
* >= to ==
* fix lint
* remove
* add failure case
* replace
* fix
* consider TORCH_VERSION == 'parrots'
* add unittest
* digit_version do not deal with the case if 'parrots' in version name.
* add torch.roll to onnx
* remove skip test
* add support to torch<170
* add dim=0 for torch==1.9.0
* update fixture function name, add comment in roll symbolic
* minor changes
* change to modulist
* change to Sequential
* replace dropout with attn_drop and proj_drop in MultiheadAttention
* add operation_name for attn
* add drop path and move all ffn args to ffncfgs
* fix typo
* fix a bug when use default value of ffn_cfgs
* fix ffns
* add deprecate warning
* fix deprecate warning
* change to pop kwargs
* support register FFN of transformer
* support batch first
* fix batch first wapper
* fix forward wapper
* fix typo
* fix lint
* add unitest for transformer
* fix unitest
* fix equal
* use allclose
* fix comments
* fix comments
* change configdict to dict
* move drop to a file
* add comments for drop path
* add noqa 501
* move bnc wapper to MultiheadAttention
* move bnc wapper to MultiheadAttention
* use dep warning
* resolve comments
* add unitest:
* rename residual to identity
* revert runner
* msda residual to identity
* rename inp_identity to identity
* fix name
* fix transformer
* remove key in msda
* remove assert for key
Co-authored-by: HIT-cwh <2892770585@qq.com>
Co-authored-by: bkhuang <congee524@gmail.com>
Co-authored-by: Wenwei Zhang <40779233+ZwwWayne@users.noreply.github.com>
* Add score_threshold and max_num to NMS
* Fix codestyle
* Fix codestyle
* Fix inds in nms
* Update nms docstring
* Move score_threshold and max_num arguments
* Fix args order in docstring
* fix lint of c++ file
* Remove torch.onnx.is_in_onnx_export() and add max_num to batched_nms for separate classes.
* Rewrote max_num handling in NMSop.symbolic
* Added processing max_output_boxes_per_class when exporting to TensorRT
* Added score_threshold and max_num for NMS in test_onnx.py and test_tensorrt.py
* Remove _is_value(max_num)
* fix ci errors with torch==1.3.1
* Update test_batched_nms in test_nms.py
* Added tests for preprocess_onnx
* Moved 'test_tensorrt_preprocess.py' and 'preprocess', updated 'remove_tmp_file'.
* Update mmcv/tensorrt/__init__.py
* Fix segfault torch==1.3.1 (remove onnx.checker.check_model)
* Returned 'onnx.checker.check_model' with torch version check
* Changed torch version from 1.3.1 to 1.4.0
* update version check
* remove check for onnx
Co-authored-by: maningsheng <maningsheng@sensetime.com>
* fix fp16 bug on DCNv2
* support fp16 on DCN/DCNv2 when pytorch >= '1.6.0'
* add comment
* Modified the comments
* Unified the usages of '.to()' and '.type_as()'
* support custom op `mmcv::cummax` for onnxruntime in mmcv
* fix clang-format lint error
* support mmcv::cummin, reformat codes
* fix merge from master
* add docs for mmcv::cummax and mmcv::cummin
* format doc
* add assertion for torch version, when exporting `cummax` to onnx
* add more comments for torch version
* handle exporting to onnx in `soft_nms`
* commit for test_onnx
* remove `is_in_onnx_export` in softnms
* add more comments
* fix c++ lint error
* add known issues doc for `cummax`
* fix known issues doc
* supports for onnxruntime custom op `mmcv::MMCVTopPool`
* supports for onnxruntime custom op `mmcv::MMCVCornerPool`, involving TopPool, BottomPool, LeftPool and RightPool
* add unittest for corner_pool
* supports mmcv::CornerPool without memcpy
* add docs for mmcv::CornerPool
* re-add docs for mmcv::CornerPool
* fix output dtype doc
* reformat
* format with pre-commit
* format
* fix lint error, by using google clang-format style for c/c++
* add c++ ms_deform_atten
* fix cpp lint
* fix cpp lint
* clang format
* remove cmakefile
* google style
* clang-format precommit
* use clang-format-lint-action
* add transformer base class
* add merge
* add docstr
* add pyargs
* fix according to commments
* resiger module
* change to use basemodule
* add _ between build function
* split the name
* fix according to comments
* fix lint and fix unitest
* fix cpp lint
* fix bug of deformdetr_atten
* fix drop out
* fix residual
* use CUDA_1D_KERNEL_LOOP
* add roi_align_rotated
* code format
* Add align key to roi align rotated
* Add clockwise for rotated roi align
* fix bugs in onnx export
* Add docstring for RoIAlignRotated
* remove cuda unittest
* Reformat c++ code
* add onnx roi align rotated file
* fix unittest
* Add cpu and float64 of cuda support for parrots
* code format
* Add unified header to roi align rotated
Co-authored-by: luopeichao <luopeichao@sensetime.com>
* add grid sample trt support
* fix align_corners=True
* change 'intep' to 'interp', fix bugs of grid sampler, better test script
* remove unused import
* move source comment to the top of trt_grid_sampler_kernel.cu
* add upfirdn2d op
* fix bug in pybind
* add fused bias leakyrelu
* fix bug in fused-bias-leakyrelu
* fix lint error
* fix bug in build cpu version
* fix bug in build cpu version
* fix lint
* fix comment from zww
Co-authored-by: zhangshilong <zhangshilong@sensetime.com>
* delete all parrots file
add bbox_overlaps new parrots op impl
* support first new impl parrts op (bbox_overlaps)(success test)
* add box_iou_rotated op, test succeed
* add carafe and carafe_naive op, test succeed (one parrots bug need fix)
* add cc_attention op, test success
* add corner_pool op, test success
* add parrots op deform_conv, test success
* add deform_roi_pool op, test success (but has question)
* add focal loss op, test success (gradcheck)
* add masked_conv2d op, test success
* add modulated_deform_conv op, test success
* add nms and nms_rotated op, test success
* add psamask op, test success
* add roi_align op, test_success
* add roi_pool op, test success
* add sync_bn op, test success
* add tin_shift op, test success
* fix test_deform_roi_pool, add parrots test
* skip test_onnx because parrots does not support onnx
* fix c++ lint
* fix python lint
* fix python lint
* start trt plugin prototype
* Add test module, modify roialign convertor
* finish roi_align trt plugin
* fix conflict of RoiAlign and MMCVRoiAlign
* fix for lint
* fix test tensorrt module
* test_tensorrt move import to test func
* add except error type
* add tensorrt to setup.cfg
* code format with yapf
* fix for clang-format
* move tensorrt_utils to mmcv/tensorrt, add comments, better test module
* fix line endings, docformatter
* isort init, remove trailing whitespace
* add except type
* fix setup.py
* put import extension inside trt setup
* change c++ guard, update pytest script, better setup, etc
* sort import with isort
* sort import with isort
* move init of plugin lib to init_plugins.py
* add scatternd, nms plugin (WIP)
* fix bugs of trt_nms
* add trt nms test module
* fix bugs of scatternd
* code optimize, add comment about nms kernel
* fix transform_if bug of trt_nms_kernel
* fix struct name
* default nms offset=0, fix bugs of batched input
* format with clang-format
* onnx preprocess
* much better nms implementation, no need to transfer memory between host and device
* update preprocess_onnx
* parse constant tensor from initializer in preprocess_onnx
* update nms
* remove unnecessary codes
* workspace aligned address
* format trt_plugin_helper.hpp
* fix index memory bugs
* set alignment to 16 by default
* fix lint
* fix nms offset
* fix bugs of preprocess onnx
* update test for nms
* tensorrt only accept int32, not int64
* update nms comments
* fix indexing for scores in nms
* update trt temp
* make trt-nms compatiable to #803
* fix lint
* add docstring to trt_nms_kernel.cuda, add description to preprocess_onnx
* add comment to score indexing
* fix bugs of max output boxes
Co-authored-by: maningsheng <maningsheng@sensetime.com>
* add scatter plugin
* fix bugs of scatternd
* add trt scatternd plugin
* format code with clang-format
* add test for scatternd
* skip test_tensorrt in CI
* remove unused variable
Co-authored-by: maningsheng <maningsheng@sensetime.com>
* start trt plugin prototype
* Add test module, modify roialign convertor
* finish roi_align trt plugin
* fix conflict of RoiAlign and MMCVRoiAlign
* fix for lint
* fix test tensorrt module
* test_tensorrt move import to test func
* add except error type
* add tensorrt to setup.cfg
* code format with yapf
* fix for clang-format
* move tensorrt_utils to mmcv/tensorrt, add comments, better test module
* fix line endings, docformatter
* isort init, remove trailing whitespace
* add except type
* fix setup.py
* put import extension inside trt setup
* change c++ guard, update pytest script, better setup, etc
* sort import with isort
* sort import with isort
* move init of plugin lib to init_plugins.py
* resolve format and add test dependency: tensorrt
* tensorrt should be installed from source not from pypi
* update naming style and input check
* resolve lint error
Co-authored-by: maningsheng <maningsheng@sensetime.com>
* [Enhance]: add onxx simplify
* add simple doc
* add unit test
* update docstring
* resolve some comment
* add test dependency:onnxoptimizer
* Fix onnxruntime register empty libpath
* test onnxruntime version
* set checker to false
* skip test_simplify for torch<1.5.0
* add onnx support to roi_align and roi_pool
* add softnms ort support
* fix for lint
* format cpp code with clang-format:google
* add new empty line to the end of head files in onnxruntime
* update to pytorch1.7
* add test of softnms to onnxruntime
* fix for lint
* remote print in ops/info.py
* change import order, fix for flake8
* fix include
* add assert torch>=1.7.0
* [doc]: add document for onnxruntime custom operator
* update onnxruntime version to v1.5.1 for softnms
* remove doc menu
* Resolve lint for markdown
* resolve naming style in onnxruntime_op.md
* Use old cpp apis, optimize test_onnx.py
* Fixing strings in tests/test_ops/test_onnx.py
* code format with yapf
* fix soft_nms parrot
* add import in onnxruntime setup, avoid conflict
* fix doc and add assert
* change cpp guard
Co-authored-by: maningsheng <maningsheng@sensetime.com>