Commit Graph

1190 Commits (73066430bed3dfe229ed0de8265d785da37f343e)
 

Author SHA1 Message Date
Wencheng Wu a3a078eefb
[Enhancement] Support registering function (#1858)
* [Enhance] Support register function.

* fix unittest error

* add docs and unittest of register function

* modify the docs

* fix version to 1.5.1

* Update docs/zh_cn/understand_mmcv/registry.md

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

* Update docs/en/understand_mmcv/registry.md

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

* refine the docs

* modify module_class to module

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
2022-05-02 18:31:41 +08:00
pc 9f5a03dc2c
[Feature] Add diff_iiou_rotated op in parrots (#1911) 2022-04-30 09:43:33 +08:00
Zaida Zhou 057c032347
[Docs] Update wechat in README_zh-CN.md (#1927) 2022-04-29 14:11:38 +08:00
Zaida Zhou 0cc84451df
[Fix] Fix GPG key error in CI (#1926) 2022-04-29 13:17:31 +08:00
WilliamKyle b30755eef2
[Feature] Add rotated_feature_align cpu & onnxruntime implementation (#1878)
* 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
2022-04-29 10:02:33 +08:00
Hu Di 4efec73269
[Docs] Add IPU installation documentation (#1904)
* add doc for mmcv installation

* Update docs/en/get_started/build.md

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
2022-04-28 14:59:27 +08:00
q.yao 30057a6113
[Fix] Fix nms rotate illegal memory access (#1891) 2022-04-27 21:06:30 +08:00
Jiazhen Wang c324b1fcfc
[Fix] Ensure the type of filename parameter in Config is str (#1725)
* ensure type of filename is str

* check filename for func: fromfile

* add ut for fromfile
2022-04-27 19:50:04 +08:00
q.yao de0c1039f7
Fix bbox unit test (#1914) 2022-04-26 16:49:28 +08:00
q.yao 0e59036211
[Enhancement] Optimize bbox overlap (#1718)
* add half support

* add cpu implementation

* fix bugs, load with inline asm

* better vector load

* add comments
2022-04-26 00:44:01 +08:00
Tan SU 86f8ade959
[Fix] Fix collec_env() encoding error on Windows (#1905) 2022-04-25 10:59:24 +08:00
Artem 94c071b310
[Feature] Add ClearMLLoggerHook (#1906)
* added clearml logger support

* review fixes

* review fixes
2022-04-24 13:20:09 +08:00
Alex Yang 4fb59b9830
[Docs] Update qq_group_qr_code (#1899) 2022-04-21 11:35:12 +08:00
Zaida Zhou 235c0253ab
bump version to v1.5.0 (#1883) 2022-04-19 00:14:38 +08:00
Mashiro a80df6874d
[Enhancement] Enhance get_torchvision_models (#1867)
* enhance get_torchvision_models

* simplify logic

* Dump ckpt in torchvision lower than 0.13.0 to a json file

* add json

* refactor load urls logic

* fix unit test

* change url key to lower letters

* check torchvision version rather than check torch version in unittest

* Fix CI and refine test logic of torchvision version

* add comment

* support compare pre-release version

* support loaad modeel like torchvision

* refine comment.

* fix unit test and comment

* fxi unit test bug

* support get model by lower weights
2022-04-18 23:20:48 +08:00
Tan SU a5cfcb93ff
[Fix] Get correct encoding in Windows for collect_env() (#1887)
* [Fix] get correct encoding in Windows for collect_env()

* stdout.fileno()
2022-04-18 17:27:22 +08:00
Vince Jankovics b80447707c
[Enhancement] Support None in DictAction (#1834)
* None parsing fixed for config

* Formatting

* Lower case none fix
2022-04-18 14:44:32 +08:00
mattcasey02 6f6b17e65f
[Fix] Fixed version comparison to include prerelease versions (#1877)
* Fixed version comparison to include prerelease versions

Currently all tagged versions of torch 1.11.0 have version 1.11.0a0. Previously the comparison to 1.11.0 failed and self._sync_params() was still used, causing an error. This fix should include all versions of 1.11.

* Same update

Didn't realize that 1.11.0 was mentioned multiple times in the file. This fixes the other instances.
2022-04-18 10:47:56 +08:00
Hu Di 5221a3883c
[Feature] Support MMCV on IPU (#1882)
* implement runner on IPU

* adjust import

* adjust import

* add ignore for ipu on without ipu

* remove compilation cache

* remove ipu from mmcv/runner.__all__

* adjust IS_IPU and IS_MLU

* adjust by isort

* add ipuHardwareIsAvailable

* remove engine_cache

* code review 9
2022-04-18 00:02:49 +08:00
Qiza-lyhm 42e7e2eec4
[Fix] Add MLU kernels to be compiled (#1885)
- Add MLU operator kernels.
2022-04-17 01:10:06 +08:00
Zaida Zhou 03b38a46ad
[Refactor] Move is_mlu_available to mmcv/utils/device_type.py (#1884)
* [Refactor] Move is_mlu_available to mmcv/utils/device_type.py

* remove comma

* fix isort
2022-04-17 00:15:35 +08:00
Jiazhen Wang 362a90f8bf
[Feature] Add several MLU ops (#1563)
* [Feature] Add roiaware pool3d ops from mmdet3d (#1382)

* add ops (roiaware pool3d) in mmdet3d

* refactor code

* fix typo

Co-authored-by: zhouzaida <zhouzaida@163.com>

* [Feature] Add iou3d op from mmdet3d (#1356)

* add ops (iou3d) in mmdet3d

* add unit test

* refactor code

* refactor code

* refactor code

* refactor code

* refactor code

Co-authored-by: zhouzaida <zhouzaida@163.com>

* [Fix] Update test data for test_iou3d (#1427)

* Update test data for test_iou3d

* delete blank lines

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

* [Feature] Add group points ops from mmdet3d (#1415)

* add op (group points) and its related ops (ball query and knn) in mmdet3d

* refactor code

* fix typo

* refactor code

* fix typo

* refactor code

* make input contiguous

Co-authored-by: zhouzaida <zhouzaida@163.com>

* add mmdet3d op (#1425)

Co-authored-by: zhouzaida <zhouzaida@163.com>

* [Feature] Loading objects from different backends and dumping objects to different backends (#1330)

* [Feature] Choose storage backend by the prefix of filepath

* refactor FileClient and add unittest

* support loading from different backends

* polish docstring

* fix unittet

* rename attribute str_like_obj to is_str_like_obj

* add infer_client method

* add check_exist method

* rename var client to file_client

* polish docstring

* add join_paths method

* remove join_paths and add _format_path

* enhance unittest

* refactor unittest

* singleton pattern

* fix test_clientio.py

* deprecate CephBackend

* enhance docstring

* refactor unittest for petrel

* refactor unittest for disk backend

* update io.md

* add concat_paths method

* improve docstring

* improve docstring

* add isdir and copyfile for file backend

* delete copyfile and add get_local_path

* remove isdir method of petrel

* fix typo

* add comment and polish docstring

* polish docstring

* rename _path_mapping to _map_path

* polish docstring and fix typo

* refactor get_local_path

* add list_dir_or_file for FileClient

* add list_dir_or_file for PetrelBackend

* fix windows ci

* Add return docstring

* polish docstring

* fix typo

* fix typo

* deprecate the conversion from Path to str

* add docs for loading checkpoints with FileClient

* refactor map_path

* add _ensure_methods to ensure methods have been implemented

* fix list_dir_or_file

* rename _ensure_method_implemented to has_method

* Add CI for pytorch 1.10 (#1431)

* [Feature] Upload checkpoints and logs to ceph (#1375)

* [Feature] Choose storage backend by the prefix of filepath

* refactor FileClient and add unittest

* support loading from different backends

* polish docstring

* fix unittet

* rename attribute str_like_obj to is_str_like_obj

* [Docs] Upload checkpoint to petrel oss

* add infer_client method

* Support uploading checkpoint to petrel oss

* add check_exist method

* refactor CheckpointHook

* support uploading logs to ceph

* rename var client to file_client

* polish docstring

* enhance load_from_ceph

* refactor load_from_ceph

* refactor TextLoggerHook

* change the meaning of out_dir argument

* fix test_checkpoint_hook.py

* add join_paths method

* remove join_paths and add _format_path

* enhance unittest

* refactor unittest

* add a unittest for EvalHook when file backend is petrel

* singleton pattern

* fix test_clientio.py

* deprecate CephBackend

* add warning in load_from_ceph

* fix type of out_suffix

* enhance docstring

* refactor unittest for petrel

* refactor unittest for disk backend

* update io.md

* add concat_paths method

* fix CI

* mock check_exist

* improve docstring

* improve docstring

* improve docstring

* improve docstring

* add isdir and copyfile for file backend

* delete copyfile and add get_local_path

* remove isdir method of petrel

* fix typo

* rename check_exists to exists

* refactor code and polish docstring

* fix windows ci

* add comment and polish docstring

* polish docstring

* polish docstring

* rename _path_mapping to _map_path

* polish docstring and fix typo

* refactor get_local_path

* add list_dir_or_file for FileClient

* add list_dir_or_file for PetrelBackend

* fix windows ci

* Add return docstring

* polish docstring

* fix typo

* fix typo

* fix typo

* fix error when mocking PetrelBackend

* deprecate the conversion from Path to str

* add docs for loading checkpoints with FileClient

* rename keep_log to keep_local

* refactor map_path

* add _ensure_methods to ensure methods have been implemented

* fix list_dir_or_file

* rename _ensure_method_implemented to has_method

* refactor

* polish information

* format information

* bump version to v1.3.16 (#1430)

* [Fix]: Update test data of test_tin_shift (#1426)

* Update test data of test_tin_shift

* Delete tmp.engine

* add pytest raises asserterror test

* raise valueerror, update test log

* add more comment

* Apply suggestions from code review

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

* fix the wrong function reference bug in BaseTransformerLayer when batch_first is True (#1418)

* [Docs] Add mmcv itself in the docs list (#1441)

* Add mmcv itself in the docs list

* modify link of docs

* [Improve] improve checkpoint loading log (#1446)

* [Feature] Support SigmoidFocalLoss with Cambricon MLU backend (#1346)

* [Feature] Support SigmoidFocalLoss with Cambricon MLU backend

* refactor MMCV_WITH_MLU macro define

* refactor NFU_ALIGN_SIZE, PAD_DOWN and split_pipeline_num

* delete extra fool proofing in cpp

* [Feature] Support SigmoidFocalLossBackward with Cambricon MLU backend

* fix macro definition in SigmoidFocalLoss

* refactor mlu files into clang-format

* refactor sigmoid focal loss test

* refactor Sigmoid Focal Loss file structure.

* fix python lint error

* fix import torch_mlu error type

* fix lint

* refactor clang format style to google

Co-authored-by: zhouzaida <zhouzaida@163.com>

* [Feature] Support RoiAlign With Cambricon MLU Backend (#1429)

* [Feature] Support NMS with cambricon MLU backend (#1467)

* [Feature] Support BBoxOverlaps with cambricon MLU backend (#1507)

* [Refactor] Format C++ code

* [Refactor] include common_mlu_helper in pytorch_mlu_helper and refactor build condition

* [Improve] Improve the performance of roialign, nms and focalloss with MLU backend (#1572)

* [Improve] Improve the performance of roialign with MLU backend

* replace CHECK_MLU with CHECK_MLU_INPUT

* [Improve] Improve the perf of nms and focallosssigmoid with MLU backend

* [Improve] Improve the performance of roialign with MLU backend (#1741)

* [Feature] Support tin_shift with cambricon MLU backend (#1696)

* [Feature] Support tin_shift with cambricon MLU backend

* [fix] Add the assertion of batch_size in tin_shift.py

* [fix] fix the param check of tin_shift in cambricon code

* [fix] Fix lint failure.

* [fix] Fix source file lint failure.

* Update mmcv/ops/tin_shift.py

[Refactor] Modify the code in mmcv/ops/tin_shift.py.

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

Co-authored-by: budefei <budefei@cambricon.com>
Co-authored-by: budefei <budefei@cambricom.com>
Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

* resolve conflicts and fix lint

* fix mmcv.utils.__init__

* fix mmcv.utils.__init__

* Fix lints and change FLAG

* fix setup and refine

* remove a redundant line

* remove an unnecessary 'f'

* fix compilation error

Co-authored-by: dingchang <hudingchang.vendor@sensetime.com>
Co-authored-by: zhouzaida <zhouzaida@163.com>
Co-authored-by: q.yao <yaoqian@sensetime.com>
Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
Co-authored-by: pc <luopeichao@sensetime.com>
Co-authored-by: Wenwei Zhang <40779233+ZwwWayne@users.noreply.github.com>
Co-authored-by: q.yao <streetyao@live.com>
Co-authored-by: Tong Gao <gaotongxiao@gmail.com>
Co-authored-by: Yuxin Liu <liuyuxin@cambricon.com>
Co-authored-by: zihanchang11 <92860914+zihanchang11@users.noreply.github.com>
Co-authored-by: shlrao <shenglong.rao@gmail.com>
Co-authored-by: zhouchenyang <zcy19950525@gmail.com>
Co-authored-by: Mrxiaofei <36697723+Mrxiaofei@users.noreply.github.com>
Co-authored-by: budefei <budefei@cambricon.com>
Co-authored-by: budefei <budefei@cambricom.com>
2022-04-16 15:45:00 +08:00
Qiza-lyhm 95273020b1
[Fix] Fix the output of scatter on MLU device (#1881)
To have the same shape of MLU copy and Scatter.forward, a 1-dim list has to be added.

Origin MMDP / MMDDP with this scatter_gather returns a list of tensor for each targets, and here MLU copy returns the same shape Tensor in a list of just one default target.
2022-04-15 19:43:05 +08:00
Danila Rukhovich aee596d523
[Enhance] Differentiable rotated IoU (#1854)
* diff_iou_rotated is working

* add test; fix lint

* fix lint for test

* disable cpu build

* refactor files structure

* fix comments

* remove extra .repeat()

* add comment

* fix j-1 bug; update doc

* fix clang lint

* update docstrings

* fix comments

* fix comments
2022-04-15 15:40:07 +08:00
Charlyo 7982dd1a06
Make sure padding size is not negative (#1792)
* Make sure padding size is not negative

If Resize maintains aspect ratio, could be the case that image shape is bigger than resize value.

* Test pad shape smaller than image shape

* Fix lint

* Remove whitespaces
2022-04-15 14:05:32 +08:00
q.yao 74031cc508
NMS with CUDA only (#1824)
* add gather_keep_from_mask_parallize

* remove unused cache

* move syncthread

* remove unused comment

* add more comments, rename the kernel and variable
2022-04-15 14:01:56 +08:00
Wenwei Zhang 3270caf6af
Fix lint issue (#1880) 2022-04-15 13:51:02 +08:00
VVsssssk 51b7a6d74a
[Fix] Fix spconv unit test by releasing cache on GPU (#1872) 2022-04-14 22:35:29 +08:00
Qiza-lyhm 4826a9b7e4
[Feature] Support PyTorch backend on MLU (#1770)
* feat(MLU): Support PyTorch backend on MLU

  * MMCV support PyTorch backend on MLU

  * Add MLUDataParallel and MLUDistributedDataParallel

  * Add MLU operator support

* [Fix]: Fix PR comments and add IS_MLU to get device available check

* [Fix]: fix PR comments of dist_utils.py

* [Doc] Rewrite annotations of functions.

* [Docs] Rewrite annotation in distributed.py

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

* [Docs] Fix lint

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
2022-04-14 21:48:18 +08:00
Andrew Stahlman cd9dcc19da
[Enhancement] Speed up Registry initialization (#1844)
* Speed up Registry initialization

This PR addresses https://github.com/open-mmlab/mmcv/issues/1843.

Instead of calling inspect.stack() to read the entire stack and its
associated source files from disk, walk up the stack to get only the
specific frame that we need (see [1] for additional information).

This makes imports in downstream projects ~2.5x faster in my local dev
environment. For mmaction2, for example:

Before:

    $ python -m timeit -n1 -r1 "from mmaction.apis import init_recognizer, inference_recognizer"
    1 loop, best of 1: 1.94 sec per loop

After:

    $ python -m timeit -n1 -r1 "from mmaction.apis import init_recognizer, inference_recognizer"
    1 loop, best of 1: 754 msec per loop

[1] https://stackoverflow.com/a/42636264/895769

* Add comment with PR tag

Explain why we avoid `inspect.stack()` with link to PR
2022-04-14 14:01:34 +08:00
Song Lin 5cded66a78
Fix docstring (#1876) 2022-04-13 19:36:32 +08:00
q.yao 85b37e7ba4
[Enhancment] Optimize correlation op (#1814)
* optimize forward

* fast backward

* fix bugs of grad input2
2022-04-10 14:38:55 +08:00
Alex Yang cff3feccbe
[Feature] Support finding free port in _init_dist_slurm() (#1846)
* [feat]:support find free port in _init_dist_slurm

* fix format

* Update mmcv/runner/dist_utils.py

should support port taken by a non-localhost address.

Co-authored-by: Mashiro <57566630+HAOCHENYE@users.noreply.github.com>

* Update dist_utils.py

Add Copyright.

* rename inner function

* Update mmcv/runner/dist_utils.py

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

* fix dist_utils.py

change _is_port_in_use() criterion.

* Update dist_utils.py

rename _is_port_in_use to _is_free_port

* Update mmcv/runner/dist_utils.py

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

* Update dist_utils.py

fix lint

* Update dist_utils.py

fix lint

Co-authored-by: Mashiro <57566630+HAOCHENYE@users.noreply.github.com>
Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
2022-04-09 12:53:23 +08:00
Tan SU c33f248987
[Enhancement] Fix collect_env on Windows (#1789)
* [fix] fix collect_env() on Windows

* fix(utils): add back 'Cuda compilation tools' to nvcc info

* feat(utils): find default ccompiler

* fix(utils, test): parse cl.exe version instead of path

* fix: code style

* fix(tools): use distutils

* [fix] collect_env() returns GCC or MSVC

* [fix] unitest for collect_env()

* add comments

* test: add GCC to expected_keys

* fix: code style

* Update mmcv/utils/env.py
2022-04-05 16:31:16 +08:00
Jiazhen Wang e0eebebf50
[Fix] Fix Python3.10 CI (#1828)
* Fix python3.10 ci

* fix build ci

* fix build ci

* fix onnx build in ci

* remove onnx optimizer

* remove python3.10 ci

* special treatment for py3.10

* fix build ci

* special treatment for python3.10 in requirements/test

* fix requirements/test
2022-04-02 14:22:05 +08:00
Rockey a02a481576
[Fix] GELU got an unexpected keyword argument 'inplace' (#1847) 2022-04-02 14:17:01 +08:00
Zaida Zhou f2c50930e4
Add a approval button (#1851) 2022-04-01 20:01:17 +08:00
Sharpiless 969e2af866
[Feature] Support for linearly learning rate decay (#1627)
* update support for linearly learning rate decay

* Fix LinearAnnealingLrUpdaterHook, update LinearAnnealingMomentumUpdaterHook, add unit test

add docstring

add docstring

update linear lr momentum schedule test

fix ci

Fix CI

* add lr and momentum hook to runner and hooks package

add lr and momentum hook to runner and hooks package

* replace multi_optimziers with multi_optimizers

Co-authored-by: HAOCHENYE <21724054@zju.edu.cn>
Co-authored-by: Mashiro <57566630+HAOCHENYE@users.noreply.github.com>
2022-03-31 09:39:40 +08:00
wulele c46deb0576
Fixed a typo in multi_scale_deform_attn.py (#1838) 2022-03-28 15:35:50 +08:00
Zaida Zhou 25602c6844
bump version to v1.4.8 (#1836) 2022-03-26 16:25:59 +08:00
Jiazhen Wang 082dabfd1a
[Fix] Fix _sync_params was removed in torch1.11.0 (#1816)
* fix pt111 dist

* fix val step
2022-03-26 16:19:45 +08:00
VVsssssk 1a2f174ffe
[Bug] Fix voxelization bug (#1822)
* fix voxelization bug

* fix code
2022-03-24 21:56:56 +08:00
q.yao d929fa4136
Fix ms deform attn (#1823)
* rename grad_sampling_loc and grad_attn_weight

* recover cache initialize
2022-03-24 21:55:33 +08:00
Zaida Zhou 5b5d0c15bc
[Docs] Add more Windows information in README (#1829)
* [Docs] Add more windows information in README

* minor fix

* rename MacOS to macOS
2022-03-23 23:41:51 +08:00
q.yao 8c23bf140a
Implement corner pool with python for torch<1.5 (#1772)
* implement corner pool with python for torch<1.5

* fix for torch130
2022-03-22 23:09:35 +08:00
Tan SU ac52bb3795
[fix] config ignore imported modules and functions (#1802)
* [fix] config ignore modules and functions

* add unitest
2022-03-22 23:04:55 +08:00
Jiazhen Wang 42062eded5
[Enhancement] Add Python3.10 CI (#1815)
* add python3.10 ci

* fix github workflow
2022-03-22 23:03:21 +08:00
q.yao 6289b6f922
[Fix] Fix rocm support (#1704) 2022-03-21 15:24:22 +08:00
Wenhao Wu 68a2c0a1e2
Update unittest for mmdet3d ops (#1811) 2022-03-18 12:52:55 +08:00
Jiazhen Wang e5ae1bfa8d
[Fix] Remove warnings in compilation (#1675)
* [Fix] remove warnings in compilation

* [Fix] fix order of statements

* [Fix] fix build error on windows

* cannel buildextension wrapper
2022-03-17 16:58:32 +08:00