From 04daea425bcb0a104d8b4acbbc16bd31304cf168 Mon Sep 17 00:00:00 2001 From: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com> Date: Tue, 3 Aug 2021 11:18:01 +0800 Subject: [PATCH 1/3] Output pdf and epub formats for readthedocsfix typo (#1237) --- .readthedocs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.readthedocs.yml b/.readthedocs.yml index 5bb171afa5..7d5f1c2060 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -1,5 +1,7 @@ version: 2 +formats: all + python: version: 3.7 install: From c47c9196d067a0900b7b8987a8e82768edab2fff Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sun, 8 Aug 2021 07:10:55 -0700 Subject: [PATCH 2/3] [Docs] Add header for files (#1181) * [Docs] Add header for files * change to OpenMMLab * add headers for .cpp, .cu, .h, .cuh * replace Open-MMLab with OpenMMLab --- LICENSE | 2 +- mmcv/__init__.py | 2 +- mmcv/arraymisc/__init__.py | 2 +- mmcv/arraymisc/quantization.py | 2 +- mmcv/cnn/__init__.py | 2 +- mmcv/cnn/alexnet.py | 2 +- mmcv/cnn/bricks/__init__.py | 1 + mmcv/cnn/bricks/activation.py | 1 + mmcv/cnn/bricks/context_block.py | 1 + mmcv/cnn/bricks/conv.py | 1 + mmcv/cnn/bricks/conv2d_adaptive_padding.py | 1 + mmcv/cnn/bricks/conv_module.py | 1 + mmcv/cnn/bricks/conv_ws.py | 1 + mmcv/cnn/bricks/depthwise_separable_conv_module.py | 1 + mmcv/cnn/bricks/drop.py | 1 + mmcv/cnn/bricks/generalized_attention.py | 1 + mmcv/cnn/bricks/hsigmoid.py | 1 + mmcv/cnn/bricks/hswish.py | 1 + mmcv/cnn/bricks/non_local.py | 1 + mmcv/cnn/bricks/norm.py | 1 + mmcv/cnn/bricks/padding.py | 1 + mmcv/cnn/bricks/registry.py | 1 + mmcv/cnn/bricks/scale.py | 1 + mmcv/cnn/bricks/swish.py | 1 + mmcv/cnn/bricks/transformer.py | 1 + mmcv/cnn/bricks/upsample.py | 1 + mmcv/cnn/bricks/wrappers.py | 1 + mmcv/cnn/builder.py | 1 + mmcv/cnn/resnet.py | 2 +- mmcv/cnn/utils/__init__.py | 2 +- mmcv/cnn/utils/fuse_conv_bn.py | 1 + mmcv/cnn/utils/weight_init.py | 2 +- mmcv/cnn/vgg.py | 2 +- mmcv/engine/__init__.py | 1 + mmcv/engine/test.py | 1 + mmcv/fileio/__init__.py | 2 +- mmcv/fileio/file_client.py | 1 + mmcv/fileio/handlers/__init__.py | 2 +- mmcv/fileio/handlers/base.py | 2 +- mmcv/fileio/handlers/json_handler.py | 2 +- mmcv/fileio/handlers/pickle_handler.py | 2 +- mmcv/fileio/handlers/yaml_handler.py | 2 +- mmcv/fileio/io.py | 2 +- mmcv/fileio/parse.py | 2 +- mmcv/image/__init__.py | 2 +- mmcv/image/colorspace.py | 2 +- mmcv/image/geometric.py | 2 +- mmcv/image/io.py | 2 +- mmcv/image/misc.py | 1 + mmcv/image/photometric.py | 1 + mmcv/onnx/__init__.py | 1 + mmcv/onnx/info.py | 1 + mmcv/onnx/onnx_utils/__init__.py | 1 + mmcv/onnx/onnx_utils/symbolic_helper.py | 1 + mmcv/onnx/symbolic.py | 1 + mmcv/ops/__init__.py | 1 + mmcv/ops/bbox.py | 1 + mmcv/ops/border_align.py | 1 + mmcv/ops/box_iou_rotated.py | 1 + mmcv/ops/carafe.py | 1 + mmcv/ops/cc_attention.py | 1 + mmcv/ops/contour_expand.py | 1 + mmcv/ops/corner_pool.py | 1 + mmcv/ops/csrc/bbox_overlaps_cuda_kernel.cuh | 1 + mmcv/ops/csrc/border_align_cuda_kernel.cuh | 1 + mmcv/ops/csrc/carafe_cuda_kernel.cuh | 1 + mmcv/ops/csrc/carafe_naive_cuda_kernel.cuh | 1 + mmcv/ops/csrc/cc_attention_cuda_kernel.cuh | 1 + mmcv/ops/csrc/deform_roi_pool_cuda_kernel.cuh | 1 + mmcv/ops/csrc/masked_conv2d_cuda_kernel.cuh | 1 + mmcv/ops/csrc/nms_cuda_kernel.cuh | 1 + mmcv/ops/csrc/onnxruntime/corner_pool.h | 1 + mmcv/ops/csrc/onnxruntime/cpu/corner_pool.cpp | 1 + mmcv/ops/csrc/onnxruntime/cpu/gridSample.cpp | 1 + mmcv/ops/csrc/onnxruntime/cpu/nms.cpp | 1 + mmcv/ops/csrc/onnxruntime/cpu/onnxruntime_register.cpp | 1 + mmcv/ops/csrc/onnxruntime/cpu/reduce_ops.cpp | 1 + mmcv/ops/csrc/onnxruntime/cpu/roi_align.cpp | 1 + mmcv/ops/csrc/onnxruntime/cpu/soft_nms.cpp | 1 + mmcv/ops/csrc/onnxruntime/grid_sample.h | 1 + mmcv/ops/csrc/onnxruntime/nms.h | 1 + mmcv/ops/csrc/onnxruntime/onnxruntime_register.h | 1 + mmcv/ops/csrc/onnxruntime/ort_mmcv_utils.h | 1 + mmcv/ops/csrc/onnxruntime/reduce_ops.h | 1 + mmcv/ops/csrc/onnxruntime/roi_align.h | 1 + mmcv/ops/csrc/onnxruntime/roi_align_rotated.h | 1 + mmcv/ops/csrc/onnxruntime/soft_nms.h | 1 + mmcv/ops/csrc/parrots/bbox_overlaps.cpp | 1 + mmcv/ops/csrc/parrots/bbox_overlaps_cuda.cu | 1 + mmcv/ops/csrc/parrots/bbox_overlaps_parrots.cpp | 1 + mmcv/ops/csrc/parrots/bbox_overlaps_pytorch.h | 1 + mmcv/ops/csrc/parrots/border_align.cpp | 1 + mmcv/ops/csrc/parrots/border_align_cuda.cu | 1 + mmcv/ops/csrc/parrots/border_align_parrots.cpp | 1 + mmcv/ops/csrc/parrots/border_align_pytorch.h | 1 + mmcv/ops/csrc/parrots/box_iou_rotated_parrots.cpp | 1 + mmcv/ops/csrc/parrots/box_iou_rotated_pytorch.h | 1 + mmcv/ops/csrc/parrots/carafe.cpp | 1 + mmcv/ops/csrc/parrots/carafe_cuda.cu | 1 + mmcv/ops/csrc/parrots/carafe_naive.cpp | 1 + mmcv/ops/csrc/parrots/carafe_naive_cuda.cu | 1 + mmcv/ops/csrc/parrots/carafe_naive_parrots.cpp | 1 + mmcv/ops/csrc/parrots/carafe_naive_pytorch.h | 1 + mmcv/ops/csrc/parrots/carafe_parrots.cpp | 1 + mmcv/ops/csrc/parrots/carafe_pytorch.h | 1 + mmcv/ops/csrc/parrots/cc_attention.cpp | 1 + mmcv/ops/csrc/parrots/cc_attention_cuda.cu | 1 + mmcv/ops/csrc/parrots/cc_attention_parrots.cpp | 1 + mmcv/ops/csrc/parrots/cc_attention_pytorch.h | 1 + mmcv/ops/csrc/parrots/corner_pool.cpp | 1 + mmcv/ops/csrc/parrots/corner_pool_parrots.cpp | 1 + mmcv/ops/csrc/parrots/corner_pool_pytorch.h | 1 + mmcv/ops/csrc/parrots/deform_conv.cpp | 1 + mmcv/ops/csrc/parrots/deform_conv_cuda.cu | 1 + mmcv/ops/csrc/parrots/deform_conv_parrots.cpp | 1 + mmcv/ops/csrc/parrots/deform_conv_pytorch.h | 1 + mmcv/ops/csrc/parrots/deform_roi_pool.cpp | 1 + mmcv/ops/csrc/parrots/deform_roi_pool_cuda.cu | 1 + mmcv/ops/csrc/parrots/deform_roi_pool_parrots.cpp | 1 + mmcv/ops/csrc/parrots/deform_roi_pool_pytorch.h | 1 + mmcv/ops/csrc/parrots/focal_loss.cpp | 1 + mmcv/ops/csrc/parrots/focal_loss_cuda.cu | 1 + mmcv/ops/csrc/parrots/focal_loss_parrots.cpp | 1 + mmcv/ops/csrc/parrots/focal_loss_pytorch.h | 1 + mmcv/ops/csrc/parrots/fused_bias_leakyrelu.cpp | 1 + mmcv/ops/csrc/parrots/fused_bias_parrots.cpp | 1 + mmcv/ops/csrc/parrots/masked_conv2d.cpp | 1 + mmcv/ops/csrc/parrots/masked_conv2d_cuda.cu | 1 + mmcv/ops/csrc/parrots/masked_conv2d_parrots.cpp | 1 + mmcv/ops/csrc/parrots/masked_conv2d_pytorch.h | 1 + mmcv/ops/csrc/parrots/modulated_deform_conv.cpp | 1 + mmcv/ops/csrc/parrots/modulated_deform_conv_cuda.cu | 1 + mmcv/ops/csrc/parrots/modulated_deform_conv_parrots.cpp | 1 + mmcv/ops/csrc/parrots/modulated_deform_conv_pytorch.h | 1 + mmcv/ops/csrc/parrots/ms_deform_attn_parrots.cpp | 1 + mmcv/ops/csrc/parrots/nms.cpp | 1 + mmcv/ops/csrc/parrots/nms_cuda.cu | 1 + mmcv/ops/csrc/parrots/nms_parrots.cpp | 1 + mmcv/ops/csrc/parrots/nms_pytorch.h | 1 + mmcv/ops/csrc/parrots/psamask.cpp | 1 + mmcv/ops/csrc/parrots/psamask_cuda.cu | 1 + mmcv/ops/csrc/parrots/psamask_parrots.cpp | 1 + mmcv/ops/csrc/parrots/psamask_pytorch.h | 1 + mmcv/ops/csrc/parrots/roi_align.cpp | 1 + mmcv/ops/csrc/parrots/roi_align_cuda.cu | 1 + mmcv/ops/csrc/parrots/roi_align_parrots.cpp | 1 + mmcv/ops/csrc/parrots/roi_align_pytorch.h | 1 + mmcv/ops/csrc/parrots/roi_align_rotated.cpp | 1 + mmcv/ops/csrc/parrots/roi_align_rotated_cuda.cu | 1 + mmcv/ops/csrc/parrots/roi_align_rotated_parrots.cpp | 1 + mmcv/ops/csrc/parrots/roi_align_rotated_pytorch.h | 1 + mmcv/ops/csrc/parrots/roi_pool.cpp | 1 + mmcv/ops/csrc/parrots/roi_pool_cuda.cu | 1 + mmcv/ops/csrc/parrots/roi_pool_parrots.cpp | 1 + mmcv/ops/csrc/parrots/roi_pool_pytorch.h | 1 + mmcv/ops/csrc/parrots/sync_bn.cpp | 1 + mmcv/ops/csrc/parrots/sync_bn_cuda.cu | 1 + mmcv/ops/csrc/parrots/sync_bn_parrots.cpp | 1 + mmcv/ops/csrc/parrots/sync_bn_pytorch.h | 1 + mmcv/ops/csrc/parrots/tin_shift.cpp | 1 + mmcv/ops/csrc/parrots/tin_shift_cuda.cu | 1 + mmcv/ops/csrc/parrots/tin_shift_parrots.cpp | 1 + mmcv/ops/csrc/parrots/tin_shift_pytorch.h | 1 + mmcv/ops/csrc/parrots/upfirdn2d.cpp | 1 + mmcv/ops/csrc/parrots/upfirdn2d_parrots.cpp | 1 + mmcv/ops/csrc/psamask_cuda_kernel.cuh | 1 + mmcv/ops/csrc/pytorch/bbox_overlaps.cpp | 1 + mmcv/ops/csrc/pytorch/bbox_overlaps_cuda.cu | 1 + mmcv/ops/csrc/pytorch/border_align.cpp | 1 + mmcv/ops/csrc/pytorch/border_align_cuda.cu | 1 + mmcv/ops/csrc/pytorch/carafe.cpp | 1 + mmcv/ops/csrc/pytorch/carafe_cuda.cu | 1 + mmcv/ops/csrc/pytorch/carafe_naive.cpp | 1 + mmcv/ops/csrc/pytorch/carafe_naive_cuda.cu | 1 + mmcv/ops/csrc/pytorch/cc_attention.cpp | 1 + mmcv/ops/csrc/pytorch/cc_attention_cuda.cu | 1 + mmcv/ops/csrc/pytorch/contour_expand.cpp | 1 + mmcv/ops/csrc/pytorch/corner_pool.cpp | 1 + mmcv/ops/csrc/pytorch/deform_conv.cpp | 1 + mmcv/ops/csrc/pytorch/deform_conv_cuda.cu | 1 + mmcv/ops/csrc/pytorch/deform_roi_pool.cpp | 1 + mmcv/ops/csrc/pytorch/deform_roi_pool_cuda.cu | 1 + mmcv/ops/csrc/pytorch/focal_loss.cpp | 1 + mmcv/ops/csrc/pytorch/focal_loss_cuda.cu | 1 + mmcv/ops/csrc/pytorch/info.cpp | 1 + mmcv/ops/csrc/pytorch/masked_conv2d.cpp | 1 + mmcv/ops/csrc/pytorch/masked_conv2d_cuda.cu | 1 + mmcv/ops/csrc/pytorch/modulated_deform_conv.cpp | 1 + mmcv/ops/csrc/pytorch/modulated_deform_conv_cuda.cu | 1 + mmcv/ops/csrc/pytorch/nms.cpp | 1 + mmcv/ops/csrc/pytorch/nms_cuda.cu | 1 + mmcv/ops/csrc/pytorch/pixel_group.cpp | 1 + mmcv/ops/csrc/pytorch/psamask.cpp | 1 + mmcv/ops/csrc/pytorch/psamask_cuda.cu | 1 + mmcv/ops/csrc/pytorch/pybind.cpp | 1 + mmcv/ops/csrc/pytorch/roi_align.cpp | 1 + mmcv/ops/csrc/pytorch/roi_align_cuda.cu | 1 + mmcv/ops/csrc/pytorch/roi_align_rotated.cpp | 1 + mmcv/ops/csrc/pytorch/roi_align_rotated_cuda.cu | 1 + mmcv/ops/csrc/pytorch/roi_pool.cpp | 1 + mmcv/ops/csrc/pytorch/roi_pool_cuda.cu | 1 + mmcv/ops/csrc/pytorch/sync_bn.cpp | 1 + mmcv/ops/csrc/pytorch/sync_bn_cuda.cu | 1 + mmcv/ops/csrc/pytorch/tin_shift.cpp | 1 + mmcv/ops/csrc/pytorch/tin_shift_cuda.cu | 1 + mmcv/ops/csrc/roi_align_cuda_kernel.cuh | 1 + mmcv/ops/csrc/roi_pool_cuda_kernel.cuh | 1 + mmcv/ops/csrc/sigmoid_focal_loss_cuda_kernel.cuh | 1 + mmcv/ops/csrc/softmax_focal_loss_cuda_kernel.cuh | 1 + mmcv/ops/csrc/sync_bn_cuda_kernel.cuh | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_corner_pool.cpp | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_corner_pool_kernel.cu | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_cuda_helper.cu | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_cummaxmin.cpp | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_cummaxmin_kernel.cu | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_deform_conv.cpp | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_deform_conv_kernel.cu | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_grid_sampler.cpp | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_grid_sampler_kernel.cu | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_instance_norm.cpp | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_modulated_deform_conv.cpp | 1 + .../csrc/tensorrt/plugins/trt_modulated_deform_conv_kernel.cu | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_nms.cpp | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_nms_kernel.cu | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_plugin.cpp | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_roi_align.cpp | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_roi_align_kernel.cu | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_scatternd.cpp | 1 + mmcv/ops/csrc/tensorrt/plugins/trt_scatternd_kernel.cu | 1 + mmcv/ops/csrc/tensorrt/trt_cuda_helper.cuh | 1 + mmcv/ops/csrc/tin_shift_cuda_kernel.cuh | 1 + mmcv/ops/deform_conv.py | 1 + mmcv/ops/deform_roi_pool.py | 1 + mmcv/ops/deprecated_wrappers.py | 1 + mmcv/ops/focal_loss.py | 1 + mmcv/ops/info.py | 1 + mmcv/ops/masked_conv.py | 1 + mmcv/ops/merge_cells.py | 1 + mmcv/ops/modulated_deform_conv.py | 1 + mmcv/ops/multi_scale_deform_attn.py | 1 + mmcv/ops/pixel_group.py | 1 + mmcv/ops/roi_align.py | 1 + mmcv/ops/roi_align_rotated.py | 1 + mmcv/ops/roi_pool.py | 1 + mmcv/ops/saconv.py | 1 + mmcv/ops/sync_bn.py | 1 + mmcv/ops/tin_shift.py | 1 + mmcv/parallel/__init__.py | 2 +- mmcv/parallel/_functions.py | 2 +- mmcv/parallel/collate.py | 2 +- mmcv/parallel/data_container.py | 2 +- mmcv/parallel/data_parallel.py | 2 +- mmcv/parallel/distributed.py | 2 +- mmcv/parallel/distributed_deprecated.py | 2 +- mmcv/parallel/registry.py | 1 + mmcv/parallel/scatter_gather.py | 2 +- mmcv/parallel/utils.py | 2 +- mmcv/runner/__init__.py | 2 +- mmcv/runner/base_module.py | 2 +- mmcv/runner/base_runner.py | 2 +- mmcv/runner/builder.py | 1 + mmcv/runner/checkpoint.py | 2 +- mmcv/runner/dist_utils.py | 2 +- mmcv/runner/epoch_based_runner.py | 2 +- mmcv/runner/fp16_utils.py | 1 + mmcv/runner/hooks/__init__.py | 2 +- mmcv/runner/hooks/checkpoint.py | 2 +- mmcv/runner/hooks/closure.py | 2 +- mmcv/runner/hooks/ema.py | 1 + mmcv/runner/hooks/evaluation.py | 1 + mmcv/runner/hooks/hook.py | 2 +- mmcv/runner/hooks/iter_timer.py | 2 +- mmcv/runner/hooks/logger/__init__.py | 2 +- mmcv/runner/hooks/logger/base.py | 2 +- mmcv/runner/hooks/logger/dvclive.py | 2 +- mmcv/runner/hooks/logger/mlflow.py | 2 +- mmcv/runner/hooks/logger/neptune.py | 2 +- mmcv/runner/hooks/logger/pavi.py | 2 +- mmcv/runner/hooks/logger/tensorboard.py | 2 +- mmcv/runner/hooks/logger/text.py | 2 +- mmcv/runner/hooks/logger/wandb.py | 2 +- mmcv/runner/hooks/lr_updater.py | 2 +- mmcv/runner/hooks/memory.py | 2 +- mmcv/runner/hooks/momentum_updater.py | 1 + mmcv/runner/hooks/optimizer.py | 2 +- mmcv/runner/hooks/profiler.py | 2 +- mmcv/runner/hooks/sampler_seed.py | 2 +- mmcv/runner/hooks/sync_buffer.py | 2 +- mmcv/runner/iter_based_runner.py | 2 +- mmcv/runner/log_buffer.py | 2 +- mmcv/runner/optimizer/__init__.py | 1 + mmcv/runner/optimizer/builder.py | 1 + mmcv/runner/optimizer/default_constructor.py | 1 + mmcv/runner/priority.py | 2 +- mmcv/runner/utils.py | 2 +- mmcv/tensorrt/__init__.py | 1 + mmcv/tensorrt/init_plugins.py | 1 + mmcv/tensorrt/tensorrt_utils.py | 1 + mmcv/utils/__init__.py | 2 +- mmcv/utils/config.py | 2 +- mmcv/utils/env.py | 1 + mmcv/utils/ext_loader.py | 1 + mmcv/utils/logging.py | 1 + mmcv/utils/misc.py | 2 +- mmcv/utils/parrots_jit.py | 1 + mmcv/utils/parrots_wrapper.py | 1 + mmcv/utils/path.py | 2 +- mmcv/utils/progressbar.py | 2 +- mmcv/utils/registry.py | 1 + mmcv/utils/timer.py | 2 +- mmcv/utils/version_utils.py | 1 + mmcv/version.py | 2 +- mmcv/video/__init__.py | 2 +- mmcv/video/io.py | 2 +- mmcv/video/optflow.py | 2 +- mmcv/video/processing.py | 2 +- mmcv/visualization/__init__.py | 2 +- mmcv/visualization/color.py | 2 +- mmcv/visualization/image.py | 2 +- mmcv/visualization/optflow.py | 2 +- tests/test_arraymisc.py | 2 +- tests/test_cnn/test_weight_init.py | 2 +- tests/test_fileio.py | 2 +- tests/test_image/test_colorspace.py | 2 +- tests/test_image/test_geometric.py | 2 +- tests/test_image/test_image_misc.py | 2 +- tests/test_image/test_io.py | 2 +- tests/test_image/test_photometric.py | 2 +- tests/test_load_model_zoo.py | 2 +- tests/test_runner/test_runner.py | 2 +- tests/test_utils/test_config.py | 2 +- tests/test_utils/test_misc.py | 2 +- tests/test_utils/test_path.py | 2 +- tests/test_utils/test_progressbar.py | 2 +- tests/test_utils/test_timer.py | 2 +- tests/test_video/test_optflow.py | 2 +- tests/test_video/test_processing.py | 2 +- tests/test_video/test_reader.py | 2 +- tests/test_visualization.py | 2 +- 339 files changed, 339 insertions(+), 95 deletions(-) diff --git a/LICENSE b/LICENSE index 83d19dbaa6..f02314255d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) Open-MMLab. All rights reserved. +Copyright (c) OpenMMLab. All rights reserved Apache License Version 2.0, January 2004 diff --git a/mmcv/__init__.py b/mmcv/__init__.py index 74ee0442fc..210a298913 100644 --- a/mmcv/__init__.py +++ b/mmcv/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. # flake8: noqa from .arraymisc import * from .fileio import * diff --git a/mmcv/arraymisc/__init__.py b/mmcv/arraymisc/__init__.py index 2e3934ca45..4b4700d613 100644 --- a/mmcv/arraymisc/__init__.py +++ b/mmcv/arraymisc/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .quantization import dequantize, quantize __all__ = ['quantize', 'dequantize'] diff --git a/mmcv/arraymisc/quantization.py b/mmcv/arraymisc/quantization.py index 47b6fa2a0b..8e47a35457 100644 --- a/mmcv/arraymisc/quantization.py +++ b/mmcv/arraymisc/quantization.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import numpy as np diff --git a/mmcv/cnn/__init__.py b/mmcv/cnn/__init__.py index f7522fa784..7246c89743 100644 --- a/mmcv/cnn/__init__.py +++ b/mmcv/cnn/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .alexnet import AlexNet # yapf: disable from .bricks import (ACTIVATION_LAYERS, CONV_LAYERS, NORM_LAYERS, diff --git a/mmcv/cnn/alexnet.py b/mmcv/cnn/alexnet.py index 3938d5cd28..89e36b8c78 100644 --- a/mmcv/cnn/alexnet.py +++ b/mmcv/cnn/alexnet.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import logging import torch.nn as nn diff --git a/mmcv/cnn/bricks/__init__.py b/mmcv/cnn/bricks/__init__.py index 78da6f39a1..0f33124ed2 100644 --- a/mmcv/cnn/bricks/__init__.py +++ b/mmcv/cnn/bricks/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .activation import build_activation_layer from .context_block import ContextBlock from .conv import build_conv_layer diff --git a/mmcv/cnn/bricks/activation.py b/mmcv/cnn/bricks/activation.py index 0dc6a77f70..79f1988386 100644 --- a/mmcv/cnn/bricks/activation.py +++ b/mmcv/cnn/bricks/activation.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn import torch.nn.functional as F diff --git a/mmcv/cnn/bricks/context_block.py b/mmcv/cnn/bricks/context_block.py index cb60abbf16..d60fdb904c 100644 --- a/mmcv/cnn/bricks/context_block.py +++ b/mmcv/cnn/bricks/context_block.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from torch import nn diff --git a/mmcv/cnn/bricks/conv.py b/mmcv/cnn/bricks/conv.py index bd3928cc59..cf54491997 100644 --- a/mmcv/cnn/bricks/conv.py +++ b/mmcv/cnn/bricks/conv.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from torch import nn from .registry import CONV_LAYERS diff --git a/mmcv/cnn/bricks/conv2d_adaptive_padding.py b/mmcv/cnn/bricks/conv2d_adaptive_padding.py index 6b636b0345..b45e758ac6 100644 --- a/mmcv/cnn/bricks/conv2d_adaptive_padding.py +++ b/mmcv/cnn/bricks/conv2d_adaptive_padding.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import math from torch import nn diff --git a/mmcv/cnn/bricks/conv_module.py b/mmcv/cnn/bricks/conv_module.py index d4c4d772bc..e71d243e15 100644 --- a/mmcv/cnn/bricks/conv_module.py +++ b/mmcv/cnn/bricks/conv_module.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings import torch.nn as nn diff --git a/mmcv/cnn/bricks/conv_ws.py b/mmcv/cnn/bricks/conv_ws.py index 5dea2312fb..a3941e2787 100644 --- a/mmcv/cnn/bricks/conv_ws.py +++ b/mmcv/cnn/bricks/conv_ws.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn import torch.nn.functional as F diff --git a/mmcv/cnn/bricks/depthwise_separable_conv_module.py b/mmcv/cnn/bricks/depthwise_separable_conv_module.py index aee8b7f63b..722d5d8d71 100644 --- a/mmcv/cnn/bricks/depthwise_separable_conv_module.py +++ b/mmcv/cnn/bricks/depthwise_separable_conv_module.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch.nn as nn from .conv_module import ConvModule diff --git a/mmcv/cnn/bricks/drop.py b/mmcv/cnn/bricks/drop.py index dd380c2162..b0a026654a 100644 --- a/mmcv/cnn/bricks/drop.py +++ b/mmcv/cnn/bricks/drop.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn diff --git a/mmcv/cnn/bricks/generalized_attention.py b/mmcv/cnn/bricks/generalized_attention.py index c6e4f00d35..988d9adf2f 100644 --- a/mmcv/cnn/bricks/generalized_attention.py +++ b/mmcv/cnn/bricks/generalized_attention.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import math import numpy as np diff --git a/mmcv/cnn/bricks/hsigmoid.py b/mmcv/cnn/bricks/hsigmoid.py index 0956ef0ea3..30b1a3d658 100644 --- a/mmcv/cnn/bricks/hsigmoid.py +++ b/mmcv/cnn/bricks/hsigmoid.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch.nn as nn from .registry import ACTIVATION_LAYERS diff --git a/mmcv/cnn/bricks/hswish.py b/mmcv/cnn/bricks/hswish.py index f1a22adbca..7e0c090ff0 100644 --- a/mmcv/cnn/bricks/hswish.py +++ b/mmcv/cnn/bricks/hswish.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch.nn as nn from .registry import ACTIVATION_LAYERS diff --git a/mmcv/cnn/bricks/non_local.py b/mmcv/cnn/bricks/non_local.py index 3ee0656653..92d00155ef 100644 --- a/mmcv/cnn/bricks/non_local.py +++ b/mmcv/cnn/bricks/non_local.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from abc import ABCMeta import torch diff --git a/mmcv/cnn/bricks/norm.py b/mmcv/cnn/bricks/norm.py index 88cd671f36..cfb326bdb8 100644 --- a/mmcv/cnn/bricks/norm.py +++ b/mmcv/cnn/bricks/norm.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import inspect import torch.nn as nn diff --git a/mmcv/cnn/bricks/padding.py b/mmcv/cnn/bricks/padding.py index b7e82129c1..e4ac6b28a1 100644 --- a/mmcv/cnn/bricks/padding.py +++ b/mmcv/cnn/bricks/padding.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch.nn as nn from .registry import PADDING_LAYERS diff --git a/mmcv/cnn/bricks/registry.py b/mmcv/cnn/bricks/registry.py index 31c1ccc196..c29279776d 100644 --- a/mmcv/cnn/bricks/registry.py +++ b/mmcv/cnn/bricks/registry.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from mmcv.utils import Registry CONV_LAYERS = Registry('conv layer') diff --git a/mmcv/cnn/bricks/scale.py b/mmcv/cnn/bricks/scale.py index be7109b824..c905fffcc8 100644 --- a/mmcv/cnn/bricks/scale.py +++ b/mmcv/cnn/bricks/scale.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn diff --git a/mmcv/cnn/bricks/swish.py b/mmcv/cnn/bricks/swish.py index f396dc59b7..e2ca8ed7b7 100644 --- a/mmcv/cnn/bricks/swish.py +++ b/mmcv/cnn/bricks/swish.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn diff --git a/mmcv/cnn/bricks/transformer.py b/mmcv/cnn/bricks/transformer.py index 06715cde60..6e82e84fed 100644 --- a/mmcv/cnn/bricks/transformer.py +++ b/mmcv/cnn/bricks/transformer.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import copy import warnings diff --git a/mmcv/cnn/bricks/upsample.py b/mmcv/cnn/bricks/upsample.py index c1388c39bf..a1a353767d 100644 --- a/mmcv/cnn/bricks/upsample.py +++ b/mmcv/cnn/bricks/upsample.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch.nn as nn import torch.nn.functional as F diff --git a/mmcv/cnn/bricks/wrappers.py b/mmcv/cnn/bricks/wrappers.py index 6e125b41ca..8aebf67bf5 100644 --- a/mmcv/cnn/bricks/wrappers.py +++ b/mmcv/cnn/bricks/wrappers.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. r"""Modified from https://github.com/facebookresearch/detectron2/blob/master/detectron2/layers/wrappers.py # noqa: E501 Wrap some nn modules to support empty tensor input. Currently, these wrappers diff --git a/mmcv/cnn/builder.py b/mmcv/cnn/builder.py index 7d16a61581..7567316c56 100644 --- a/mmcv/cnn/builder.py +++ b/mmcv/cnn/builder.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from ..runner import Sequential from ..utils import Registry, build_from_cfg diff --git a/mmcv/cnn/resnet.py b/mmcv/cnn/resnet.py index 8fe9a3320a..1cb3ac057e 100644 --- a/mmcv/cnn/resnet.py +++ b/mmcv/cnn/resnet.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import logging import torch.nn as nn diff --git a/mmcv/cnn/utils/__init__.py b/mmcv/cnn/utils/__init__.py index c8a4bd51f8..f28aa5db89 100644 --- a/mmcv/cnn/utils/__init__.py +++ b/mmcv/cnn/utils/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .flops_counter import get_model_complexity_info from .fuse_conv_bn import fuse_conv_bn from .weight_init import (INITIALIZERS, Caffe2XavierInit, ConstantInit, diff --git a/mmcv/cnn/utils/fuse_conv_bn.py b/mmcv/cnn/utils/fuse_conv_bn.py index 31578be920..cb7076f80b 100644 --- a/mmcv/cnn/utils/fuse_conv_bn.py +++ b/mmcv/cnn/utils/fuse_conv_bn.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn diff --git a/mmcv/cnn/utils/weight_init.py b/mmcv/cnn/utils/weight_init.py index e179c23d0c..e1d6d5adcd 100644 --- a/mmcv/cnn/utils/weight_init.py +++ b/mmcv/cnn/utils/weight_init.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import copy import math import warnings diff --git a/mmcv/cnn/vgg.py b/mmcv/cnn/vgg.py index 82f8ba1093..8778b64956 100644 --- a/mmcv/cnn/vgg.py +++ b/mmcv/cnn/vgg.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import logging import torch.nn as nn diff --git a/mmcv/engine/__init__.py b/mmcv/engine/__init__.py index 8bec565dfc..3193b7f664 100644 --- a/mmcv/engine/__init__.py +++ b/mmcv/engine/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .test import (collect_results_cpu, collect_results_gpu, multi_gpu_test, single_gpu_test) diff --git a/mmcv/engine/test.py b/mmcv/engine/test.py index a0fe57a222..f236b1cda2 100644 --- a/mmcv/engine/test.py +++ b/mmcv/engine/test.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp import pickle import shutil diff --git a/mmcv/fileio/__init__.py b/mmcv/fileio/__init__.py index b307027ad9..2051b85f7e 100644 --- a/mmcv/fileio/__init__.py +++ b/mmcv/fileio/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .file_client import BaseStorageBackend, FileClient from .handlers import BaseFileHandler, JsonHandler, PickleHandler, YamlHandler from .io import dump, load, register_handler diff --git a/mmcv/fileio/file_client.py b/mmcv/fileio/file_client.py index f496f6ee4d..e8a6cbdb08 100644 --- a/mmcv/fileio/file_client.py +++ b/mmcv/fileio/file_client.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import inspect from abc import ABCMeta, abstractmethod from urllib.request import urlopen diff --git a/mmcv/fileio/handlers/__init__.py b/mmcv/fileio/handlers/__init__.py index 2fbc6ec92b..aa24d91972 100644 --- a/mmcv/fileio/handlers/__init__.py +++ b/mmcv/fileio/handlers/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .base import BaseFileHandler from .json_handler import JsonHandler from .pickle_handler import PickleHandler diff --git a/mmcv/fileio/handlers/base.py b/mmcv/fileio/handlers/base.py index 91f3fe1fbc..235727557c 100644 --- a/mmcv/fileio/handlers/base.py +++ b/mmcv/fileio/handlers/base.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from abc import ABCMeta, abstractmethod diff --git a/mmcv/fileio/handlers/json_handler.py b/mmcv/fileio/handlers/json_handler.py index d92c397f14..18d4f15f74 100644 --- a/mmcv/fileio/handlers/json_handler.py +++ b/mmcv/fileio/handlers/json_handler.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import json import numpy as np diff --git a/mmcv/fileio/handlers/pickle_handler.py b/mmcv/fileio/handlers/pickle_handler.py index b22b1dc1df..0250459957 100644 --- a/mmcv/fileio/handlers/pickle_handler.py +++ b/mmcv/fileio/handlers/pickle_handler.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import pickle from .base import BaseFileHandler diff --git a/mmcv/fileio/handlers/yaml_handler.py b/mmcv/fileio/handlers/yaml_handler.py index c93eba8d36..c5aa2eea1e 100644 --- a/mmcv/fileio/handlers/yaml_handler.py +++ b/mmcv/fileio/handlers/yaml_handler.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import yaml try: diff --git a/mmcv/fileio/io.py b/mmcv/fileio/io.py index 777df97a6e..015d36e808 100644 --- a/mmcv/fileio/io.py +++ b/mmcv/fileio/io.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from pathlib import Path from ..utils import is_list_of, is_str diff --git a/mmcv/fileio/parse.py b/mmcv/fileio/parse.py index 5640029c17..ffe86d3de9 100644 --- a/mmcv/fileio/parse.py +++ b/mmcv/fileio/parse.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. def list_from_file(filename, prefix='', offset=0, max_num=0, encoding='utf-8'): """Load a text file and parse the content as a list of strings. diff --git a/mmcv/image/__init__.py b/mmcv/image/__init__.py index 1a45f4e0c8..d0051d609d 100644 --- a/mmcv/image/__init__.py +++ b/mmcv/image/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .colorspace import (bgr2gray, bgr2hls, bgr2hsv, bgr2rgb, bgr2ycbcr, gray2bgr, gray2rgb, hls2bgr, hsv2bgr, imconvert, rgb2bgr, rgb2gray, rgb2ycbcr, ycbcr2bgr, ycbcr2rgb) diff --git a/mmcv/image/colorspace.py b/mmcv/image/colorspace.py index 56cfe65770..5eb70e95ef 100644 --- a/mmcv/image/colorspace.py +++ b/mmcv/image/colorspace.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import cv2 import numpy as np diff --git a/mmcv/image/geometric.py b/mmcv/image/geometric.py index f81aa4599b..cf97c201cb 100644 --- a/mmcv/image/geometric.py +++ b/mmcv/image/geometric.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import numbers import cv2 diff --git a/mmcv/image/io.py b/mmcv/image/io.py index 8c64e0eff6..d47aaa8452 100644 --- a/mmcv/image/io.py +++ b/mmcv/image/io.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import io import os.path as osp from pathlib import Path diff --git a/mmcv/image/misc.py b/mmcv/image/misc.py index 1e02b952e2..dfc4a9c6e4 100644 --- a/mmcv/image/misc.py +++ b/mmcv/image/misc.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import numpy as np import mmcv diff --git a/mmcv/image/photometric.py b/mmcv/image/photometric.py index a26cf5b597..721ec71aff 100644 --- a/mmcv/image/photometric.py +++ b/mmcv/image/photometric.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import cv2 import numpy as np diff --git a/mmcv/onnx/__init__.py b/mmcv/onnx/__init__.py index 12c57c07a9..0d7eb5b0db 100644 --- a/mmcv/onnx/__init__.py +++ b/mmcv/onnx/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .info import is_custom_op_loaded from .symbolic import register_extra_symbolics diff --git a/mmcv/onnx/info.py b/mmcv/onnx/info.py index 6c8ba391df..060efafe22 100644 --- a/mmcv/onnx/info.py +++ b/mmcv/onnx/info.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os diff --git a/mmcv/onnx/onnx_utils/__init__.py b/mmcv/onnx/onnx_utils/__init__.py index e69de29bb2..ef101fec61 100644 --- a/mmcv/onnx/onnx_utils/__init__.py +++ b/mmcv/onnx/onnx_utils/__init__.py @@ -0,0 +1 @@ +# Copyright (c) OpenMMLab. All rights reserved. diff --git a/mmcv/onnx/onnx_utils/symbolic_helper.py b/mmcv/onnx/onnx_utils/symbolic_helper.py index 032d4b1b05..a9a31eb4ae 100644 --- a/mmcv/onnx/onnx_utils/symbolic_helper.py +++ b/mmcv/onnx/onnx_utils/symbolic_helper.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. """Modified from https://github.com/pytorch/pytorch.""" import warnings from functools import wraps diff --git a/mmcv/onnx/symbolic.py b/mmcv/onnx/symbolic.py index 0d68cfbd15..2243cf46d4 100644 --- a/mmcv/onnx/symbolic.py +++ b/mmcv/onnx/symbolic.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. """Modified from https://github.com/pytorch/pytorch.""" import os diff --git a/mmcv/ops/__init__.py b/mmcv/ops/__init__.py index ac9987b160..359a13c06a 100644 --- a/mmcv/ops/__init__.py +++ b/mmcv/ops/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .bbox import bbox_overlaps from .border_align import BorderAlign, border_align from .box_iou_rotated import box_iou_rotated diff --git a/mmcv/ops/bbox.py b/mmcv/ops/bbox.py index 855009ad14..0c4d58b6c9 100644 --- a/mmcv/ops/bbox.py +++ b/mmcv/ops/bbox.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from ..utils import ext_loader ext_module = ext_loader.load_ext('_ext', ['bbox_overlaps']) diff --git a/mmcv/ops/border_align.py b/mmcv/ops/border_align.py index e111d69550..ff305be328 100644 --- a/mmcv/ops/border_align.py +++ b/mmcv/ops/border_align.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. # modified from # https://github.com/Megvii-BaseDetection/cvpods/blob/master/cvpods/layers/border_align.py diff --git a/mmcv/ops/box_iou_rotated.py b/mmcv/ops/box_iou_rotated.py index fbfcef2acc..2d78015e9c 100644 --- a/mmcv/ops/box_iou_rotated.py +++ b/mmcv/ops/box_iou_rotated.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from ..utils import ext_loader ext_module = ext_loader.load_ext('_ext', ['box_iou_rotated']) diff --git a/mmcv/ops/carafe.py b/mmcv/ops/carafe.py index 163458572a..c7af1dadce 100644 --- a/mmcv/ops/carafe.py +++ b/mmcv/ops/carafe.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn import torch.nn.functional as F diff --git a/mmcv/ops/cc_attention.py b/mmcv/ops/cc_attention.py index 53efff9e66..b1e088f8cd 100644 --- a/mmcv/ops/cc_attention.py +++ b/mmcv/ops/cc_attention.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn import torch.nn.functional as F diff --git a/mmcv/ops/contour_expand.py b/mmcv/ops/contour_expand.py index 241f4db4af..b5a2f80987 100644 --- a/mmcv/ops/contour_expand.py +++ b/mmcv/ops/contour_expand.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import numpy as np import torch diff --git a/mmcv/ops/corner_pool.py b/mmcv/ops/corner_pool.py index f1593369e5..a33d798b43 100644 --- a/mmcv/ops/corner_pool.py +++ b/mmcv/ops/corner_pool.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch from torch import nn from torch.autograd import Function diff --git a/mmcv/ops/csrc/bbox_overlaps_cuda_kernel.cuh b/mmcv/ops/csrc/bbox_overlaps_cuda_kernel.cuh index e5fccabae4..249c9e8500 100644 --- a/mmcv/ops/csrc/bbox_overlaps_cuda_kernel.cuh +++ b/mmcv/ops/csrc/bbox_overlaps_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef BBOX_OVERLAPS_CUDA_KERNEL_CUH #define BBOX_OVERLAPS_CUDA_KERNEL_CUH diff --git a/mmcv/ops/csrc/border_align_cuda_kernel.cuh b/mmcv/ops/csrc/border_align_cuda_kernel.cuh index 143dce5ddc..1d2a2197b4 100644 --- a/mmcv/ops/csrc/border_align_cuda_kernel.cuh +++ b/mmcv/ops/csrc/border_align_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // modified from // https://github.com/Megvii-BaseDetection/cvpods/blob/master/cvpods/layers/csrc/border_align/border_align_kernel.cu. // the main difference: (1) use `argmax_idx` for fast computing of gradient diff --git a/mmcv/ops/csrc/carafe_cuda_kernel.cuh b/mmcv/ops/csrc/carafe_cuda_kernel.cuh index 4bf11694f3..e7fa990fea 100644 --- a/mmcv/ops/csrc/carafe_cuda_kernel.cuh +++ b/mmcv/ops/csrc/carafe_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef CARAFE_CUDA_KERNEL_CUH #define CARAFE_CUDA_KERNEL_CUH diff --git a/mmcv/ops/csrc/carafe_naive_cuda_kernel.cuh b/mmcv/ops/csrc/carafe_naive_cuda_kernel.cuh index 6f375162c0..48230c632f 100644 --- a/mmcv/ops/csrc/carafe_naive_cuda_kernel.cuh +++ b/mmcv/ops/csrc/carafe_naive_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef CARAFE_NAIVE_CUDA_KERNEL_CUH #define CARAFE_NAIVE_CUDA_KERNEL_CUH diff --git a/mmcv/ops/csrc/cc_attention_cuda_kernel.cuh b/mmcv/ops/csrc/cc_attention_cuda_kernel.cuh index 15e07d1970..de962bd817 100644 --- a/mmcv/ops/csrc/cc_attention_cuda_kernel.cuh +++ b/mmcv/ops/csrc/cc_attention_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef CC_ATTENTION_CUDA_KERNEL_CUH #define CC_ATTENTION_CUDA_KERNEL_CUH diff --git a/mmcv/ops/csrc/deform_roi_pool_cuda_kernel.cuh b/mmcv/ops/csrc/deform_roi_pool_cuda_kernel.cuh index cddb8d5e9e..86c4bc66dd 100644 --- a/mmcv/ops/csrc/deform_roi_pool_cuda_kernel.cuh +++ b/mmcv/ops/csrc/deform_roi_pool_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef DEFORM_ROI_POOL_CUDA_KERNEL_CUH #define DEFORM_ROI_POOL_CUDA_KERNEL_CUH diff --git a/mmcv/ops/csrc/masked_conv2d_cuda_kernel.cuh b/mmcv/ops/csrc/masked_conv2d_cuda_kernel.cuh index 4be8329ae3..1a0bd040e8 100644 --- a/mmcv/ops/csrc/masked_conv2d_cuda_kernel.cuh +++ b/mmcv/ops/csrc/masked_conv2d_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef MASKED_CONV2D_CUDA_KERNEL_CUH #define MASKED_CONV2D_CUDA_KERNEL_CUH diff --git a/mmcv/ops/csrc/nms_cuda_kernel.cuh b/mmcv/ops/csrc/nms_cuda_kernel.cuh index 363d494710..c73aed986d 100644 --- a/mmcv/ops/csrc/nms_cuda_kernel.cuh +++ b/mmcv/ops/csrc/nms_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef NMS_CUDA_KERNEL_CUH #define NMS_CUDA_KERNEL_CUH diff --git a/mmcv/ops/csrc/onnxruntime/corner_pool.h b/mmcv/ops/csrc/onnxruntime/corner_pool.h index 4edca2cb8f..55a293bd3c 100644 --- a/mmcv/ops/csrc/onnxruntime/corner_pool.h +++ b/mmcv/ops/csrc/onnxruntime/corner_pool.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ONNXRUNTIME_CORNER_POOL_H #define ONNXRUNTIME_CORNER_POOL_H diff --git a/mmcv/ops/csrc/onnxruntime/cpu/corner_pool.cpp b/mmcv/ops/csrc/onnxruntime/cpu/corner_pool.cpp index d9d4dc3aad..397fe10e74 100644 --- a/mmcv/ops/csrc/onnxruntime/cpu/corner_pool.cpp +++ b/mmcv/ops/csrc/onnxruntime/cpu/corner_pool.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "corner_pool.h" #include "../ort_mmcv_utils.h" diff --git a/mmcv/ops/csrc/onnxruntime/cpu/gridSample.cpp b/mmcv/ops/csrc/onnxruntime/cpu/gridSample.cpp index ec5ad330f9..9ef0e6fd74 100644 --- a/mmcv/ops/csrc/onnxruntime/cpu/gridSample.cpp +++ b/mmcv/ops/csrc/onnxruntime/cpu/gridSample.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include "../ort_mmcv_utils.h" diff --git a/mmcv/ops/csrc/onnxruntime/cpu/nms.cpp b/mmcv/ops/csrc/onnxruntime/cpu/nms.cpp index 8e75937ced..0ab2ddb9aa 100644 --- a/mmcv/ops/csrc/onnxruntime/cpu/nms.cpp +++ b/mmcv/ops/csrc/onnxruntime/cpu/nms.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "nms.h" #include diff --git a/mmcv/ops/csrc/onnxruntime/cpu/onnxruntime_register.cpp b/mmcv/ops/csrc/onnxruntime/cpu/onnxruntime_register.cpp index 468fb13fff..919fec7b16 100644 --- a/mmcv/ops/csrc/onnxruntime/cpu/onnxruntime_register.cpp +++ b/mmcv/ops/csrc/onnxruntime/cpu/onnxruntime_register.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "onnxruntime_register.h" #include "corner_pool.h" diff --git a/mmcv/ops/csrc/onnxruntime/cpu/reduce_ops.cpp b/mmcv/ops/csrc/onnxruntime/cpu/reduce_ops.cpp index 8c5a03a769..bcec4d7689 100644 --- a/mmcv/ops/csrc/onnxruntime/cpu/reduce_ops.cpp +++ b/mmcv/ops/csrc/onnxruntime/cpu/reduce_ops.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "reduce_ops.h" #include diff --git a/mmcv/ops/csrc/onnxruntime/cpu/roi_align.cpp b/mmcv/ops/csrc/onnxruntime/cpu/roi_align.cpp index fdc3f2c140..2151d2ac6e 100644 --- a/mmcv/ops/csrc/onnxruntime/cpu/roi_align.cpp +++ b/mmcv/ops/csrc/onnxruntime/cpu/roi_align.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "roi_align.h" #include "../ort_mmcv_utils.h" diff --git a/mmcv/ops/csrc/onnxruntime/cpu/soft_nms.cpp b/mmcv/ops/csrc/onnxruntime/cpu/soft_nms.cpp index efab504f5f..8bb4ce3365 100644 --- a/mmcv/ops/csrc/onnxruntime/cpu/soft_nms.cpp +++ b/mmcv/ops/csrc/onnxruntime/cpu/soft_nms.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "soft_nms.h" #include diff --git a/mmcv/ops/csrc/onnxruntime/grid_sample.h b/mmcv/ops/csrc/onnxruntime/grid_sample.h index 923cf7e03c..6be15146b2 100644 --- a/mmcv/ops/csrc/onnxruntime/grid_sample.h +++ b/mmcv/ops/csrc/onnxruntime/grid_sample.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ONNXRUNTIME_GRIDSAMPLE_H #define ONNXRUNTIME_GRIDSAMPLE_H diff --git a/mmcv/ops/csrc/onnxruntime/nms.h b/mmcv/ops/csrc/onnxruntime/nms.h index 80a75c51fa..ddb208de4d 100644 --- a/mmcv/ops/csrc/onnxruntime/nms.h +++ b/mmcv/ops/csrc/onnxruntime/nms.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ONNXRUNTIME_NMS_H #define ONNXRUNTIME_NMS_H diff --git a/mmcv/ops/csrc/onnxruntime/onnxruntime_register.h b/mmcv/ops/csrc/onnxruntime/onnxruntime_register.h index 175071a716..84d2014556 100644 --- a/mmcv/ops/csrc/onnxruntime/onnxruntime_register.h +++ b/mmcv/ops/csrc/onnxruntime/onnxruntime_register.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ONNXRUNTIME_REGISTER_H #define ONNXRUNTIME_REGISTER_H #include diff --git a/mmcv/ops/csrc/onnxruntime/ort_mmcv_utils.h b/mmcv/ops/csrc/onnxruntime/ort_mmcv_utils.h index 3bab9d637e..b3d6d3da7d 100644 --- a/mmcv/ops/csrc/onnxruntime/ort_mmcv_utils.h +++ b/mmcv/ops/csrc/onnxruntime/ort_mmcv_utils.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ORT_MMCV_UTILS_H #define ORT_MMCV_UTILS_H #include diff --git a/mmcv/ops/csrc/onnxruntime/reduce_ops.h b/mmcv/ops/csrc/onnxruntime/reduce_ops.h index efd8c7b31d..09d3796242 100644 --- a/mmcv/ops/csrc/onnxruntime/reduce_ops.h +++ b/mmcv/ops/csrc/onnxruntime/reduce_ops.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ONNXRUNTIME_REDUCE_OPS_H #define ONNXRUNTIME_REDUCE_OPS_H diff --git a/mmcv/ops/csrc/onnxruntime/roi_align.h b/mmcv/ops/csrc/onnxruntime/roi_align.h index af8377efa2..fbf84f6394 100644 --- a/mmcv/ops/csrc/onnxruntime/roi_align.h +++ b/mmcv/ops/csrc/onnxruntime/roi_align.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ONNXRUNTIME_ROI_ALIGN_H #define ONNXRUNTIME_ROI_ALIGN_H diff --git a/mmcv/ops/csrc/onnxruntime/roi_align_rotated.h b/mmcv/ops/csrc/onnxruntime/roi_align_rotated.h index f142c7981d..854ef06c39 100644 --- a/mmcv/ops/csrc/onnxruntime/roi_align_rotated.h +++ b/mmcv/ops/csrc/onnxruntime/roi_align_rotated.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ONNXRUNTIME_ROI_ALIGN_ROTATED_H #define ONNXRUNTIME_ROI_ALIGN_ROTATED_H diff --git a/mmcv/ops/csrc/onnxruntime/soft_nms.h b/mmcv/ops/csrc/onnxruntime/soft_nms.h index 3b1b3c02a8..49711d76a8 100644 --- a/mmcv/ops/csrc/onnxruntime/soft_nms.h +++ b/mmcv/ops/csrc/onnxruntime/soft_nms.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ONNXRUNTIME_SOFT_NMS_H #define ONNXRUNTIME_SOFT_NMS_H #include diff --git a/mmcv/ops/csrc/parrots/bbox_overlaps.cpp b/mmcv/ops/csrc/parrots/bbox_overlaps.cpp index 23bf7d4347..073110dfc8 100644 --- a/mmcv/ops/csrc/parrots/bbox_overlaps.cpp +++ b/mmcv/ops/csrc/parrots/bbox_overlaps.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/bbox_overlaps_cuda.cu b/mmcv/ops/csrc/parrots/bbox_overlaps_cuda.cu index d6e26c24d1..16679c766f 100644 --- a/mmcv/ops/csrc/parrots/bbox_overlaps_cuda.cu +++ b/mmcv/ops/csrc/parrots/bbox_overlaps_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "bbox_overlaps_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/parrots/bbox_overlaps_parrots.cpp b/mmcv/ops/csrc/parrots/bbox_overlaps_parrots.cpp index 35bb5f5c87..5f6264d3c0 100644 --- a/mmcv/ops/csrc/parrots/bbox_overlaps_parrots.cpp +++ b/mmcv/ops/csrc/parrots/bbox_overlaps_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/bbox_overlaps_pytorch.h b/mmcv/ops/csrc/parrots/bbox_overlaps_pytorch.h index 10f494f084..4f68aa3397 100644 --- a/mmcv/ops/csrc/parrots/bbox_overlaps_pytorch.h +++ b/mmcv/ops/csrc/parrots/bbox_overlaps_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef BBOX_OVERLAPS_PYTORCH_H #define BBOX_OVERLAPS_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/border_align.cpp b/mmcv/ops/csrc/parrots/border_align.cpp index 78351e2a5f..bb14962c9f 100644 --- a/mmcv/ops/csrc/parrots/border_align.cpp +++ b/mmcv/ops/csrc/parrots/border_align.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/border_align_cuda.cu b/mmcv/ops/csrc/parrots/border_align_cuda.cu index 06ba452f65..3aeefea5dd 100644 --- a/mmcv/ops/csrc/parrots/border_align_cuda.cu +++ b/mmcv/ops/csrc/parrots/border_align_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "border_align_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/parrots/border_align_parrots.cpp b/mmcv/ops/csrc/parrots/border_align_parrots.cpp index a4564b09e1..9a075a1096 100644 --- a/mmcv/ops/csrc/parrots/border_align_parrots.cpp +++ b/mmcv/ops/csrc/parrots/border_align_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/border_align_pytorch.h b/mmcv/ops/csrc/parrots/border_align_pytorch.h index 54ff54c34b..cb031e572a 100644 --- a/mmcv/ops/csrc/parrots/border_align_pytorch.h +++ b/mmcv/ops/csrc/parrots/border_align_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef BORDER_ALIGN_PYTORCH_H #define BORDER_ALIGN_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/box_iou_rotated_parrots.cpp b/mmcv/ops/csrc/parrots/box_iou_rotated_parrots.cpp index 27114fea94..a90d640458 100644 --- a/mmcv/ops/csrc/parrots/box_iou_rotated_parrots.cpp +++ b/mmcv/ops/csrc/parrots/box_iou_rotated_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/box_iou_rotated_pytorch.h b/mmcv/ops/csrc/parrots/box_iou_rotated_pytorch.h index 91886b2ed6..afab703181 100644 --- a/mmcv/ops/csrc/parrots/box_iou_rotated_pytorch.h +++ b/mmcv/ops/csrc/parrots/box_iou_rotated_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef BOX_IOU_ROTATED_PYTORCH_H #define BOX_IOU_ROTATED_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/carafe.cpp b/mmcv/ops/csrc/parrots/carafe.cpp index 67619284fa..c4137378cd 100644 --- a/mmcv/ops/csrc/parrots/carafe.cpp +++ b/mmcv/ops/csrc/parrots/carafe.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/carafe_cuda.cu b/mmcv/ops/csrc/parrots/carafe_cuda.cu index 2f9ac05302..984e734f9e 100644 --- a/mmcv/ops/csrc/parrots/carafe_cuda.cu +++ b/mmcv/ops/csrc/parrots/carafe_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "carafe_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/parrots/carafe_naive.cpp b/mmcv/ops/csrc/parrots/carafe_naive.cpp index bb0aa0978b..d6ebda35a3 100644 --- a/mmcv/ops/csrc/parrots/carafe_naive.cpp +++ b/mmcv/ops/csrc/parrots/carafe_naive.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/carafe_naive_cuda.cu b/mmcv/ops/csrc/parrots/carafe_naive_cuda.cu index ffc05c8fa5..2fc5667686 100644 --- a/mmcv/ops/csrc/parrots/carafe_naive_cuda.cu +++ b/mmcv/ops/csrc/parrots/carafe_naive_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "carafe_naive_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/parrots/carafe_naive_parrots.cpp b/mmcv/ops/csrc/parrots/carafe_naive_parrots.cpp index 78dfe09d42..9c16a37079 100644 --- a/mmcv/ops/csrc/parrots/carafe_naive_parrots.cpp +++ b/mmcv/ops/csrc/parrots/carafe_naive_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/carafe_naive_pytorch.h b/mmcv/ops/csrc/parrots/carafe_naive_pytorch.h index 2c69b9bd93..6df9b88c23 100644 --- a/mmcv/ops/csrc/parrots/carafe_naive_pytorch.h +++ b/mmcv/ops/csrc/parrots/carafe_naive_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef CARAFE_NAIVE_PYTORCH_H #define CARAFE_NAIVE_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/carafe_parrots.cpp b/mmcv/ops/csrc/parrots/carafe_parrots.cpp index 413778b55a..e99f59ef22 100644 --- a/mmcv/ops/csrc/parrots/carafe_parrots.cpp +++ b/mmcv/ops/csrc/parrots/carafe_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/carafe_pytorch.h b/mmcv/ops/csrc/parrots/carafe_pytorch.h index 691a12271d..2b94d44d3c 100644 --- a/mmcv/ops/csrc/parrots/carafe_pytorch.h +++ b/mmcv/ops/csrc/parrots/carafe_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef CARAFE_PYTORCH_H #define CARAFE_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/cc_attention.cpp b/mmcv/ops/csrc/parrots/cc_attention.cpp index 9d7e48a4da..d76a04456e 100644 --- a/mmcv/ops/csrc/parrots/cc_attention.cpp +++ b/mmcv/ops/csrc/parrots/cc_attention.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/cc_attention_cuda.cu b/mmcv/ops/csrc/parrots/cc_attention_cuda.cu index fd4e7fd128..52db536c2a 100644 --- a/mmcv/ops/csrc/parrots/cc_attention_cuda.cu +++ b/mmcv/ops/csrc/parrots/cc_attention_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // Modified from // https://github.com/LikeLy-Journey/SegmenTron/blob/master/segmentron/modules/csrc/criss_cross_attention/ca_cuda.cu diff --git a/mmcv/ops/csrc/parrots/cc_attention_parrots.cpp b/mmcv/ops/csrc/parrots/cc_attention_parrots.cpp index a51e46c389..024edb58ba 100644 --- a/mmcv/ops/csrc/parrots/cc_attention_parrots.cpp +++ b/mmcv/ops/csrc/parrots/cc_attention_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/cc_attention_pytorch.h b/mmcv/ops/csrc/parrots/cc_attention_pytorch.h index 975ca30284..dc92b0d7f2 100644 --- a/mmcv/ops/csrc/parrots/cc_attention_pytorch.h +++ b/mmcv/ops/csrc/parrots/cc_attention_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef CC_ATTENTION_PYTORCH_H #define CC_ATTENTION_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/corner_pool.cpp b/mmcv/ops/csrc/parrots/corner_pool.cpp index 58da7e9ea6..732cdb0562 100644 --- a/mmcv/ops/csrc/parrots/corner_pool.cpp +++ b/mmcv/ops/csrc/parrots/corner_pool.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // Modified from // https://github.com/princeton-vl/CornerNet-Lite/tree/master/core/models/py_utils/_cpools/src #include "pytorch_cpp_helper.hpp" diff --git a/mmcv/ops/csrc/parrots/corner_pool_parrots.cpp b/mmcv/ops/csrc/parrots/corner_pool_parrots.cpp index c2ffeeb32f..8b8cc5e481 100644 --- a/mmcv/ops/csrc/parrots/corner_pool_parrots.cpp +++ b/mmcv/ops/csrc/parrots/corner_pool_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/corner_pool_pytorch.h b/mmcv/ops/csrc/parrots/corner_pool_pytorch.h index 2cd4ece8d7..fd94234bf1 100644 --- a/mmcv/ops/csrc/parrots/corner_pool_pytorch.h +++ b/mmcv/ops/csrc/parrots/corner_pool_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef CORNER_POOL_PYTORCH_H #define CORNER_POOL_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/deform_conv.cpp b/mmcv/ops/csrc/parrots/deform_conv.cpp index 9b2dc44950..4da104e836 100644 --- a/mmcv/ops/csrc/parrots/deform_conv.cpp +++ b/mmcv/ops/csrc/parrots/deform_conv.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/deform_conv_cuda.cu b/mmcv/ops/csrc/parrots/deform_conv_cuda.cu index f85f33d3c8..2a1aedcf6f 100644 --- a/mmcv/ops/csrc/parrots/deform_conv_cuda.cu +++ b/mmcv/ops/csrc/parrots/deform_conv_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "deform_conv_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/parrots/deform_conv_parrots.cpp b/mmcv/ops/csrc/parrots/deform_conv_parrots.cpp index 949f6b4279..aa25dac8a3 100644 --- a/mmcv/ops/csrc/parrots/deform_conv_parrots.cpp +++ b/mmcv/ops/csrc/parrots/deform_conv_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/deform_conv_pytorch.h b/mmcv/ops/csrc/parrots/deform_conv_pytorch.h index 156e6a88cb..001d1851c6 100644 --- a/mmcv/ops/csrc/parrots/deform_conv_pytorch.h +++ b/mmcv/ops/csrc/parrots/deform_conv_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef DEFORM_CONV_PYTORCH_H #define DEFORM_CONV_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/deform_roi_pool.cpp b/mmcv/ops/csrc/parrots/deform_roi_pool.cpp index 1022ea91f8..b4654c0d9a 100644 --- a/mmcv/ops/csrc/parrots/deform_roi_pool.cpp +++ b/mmcv/ops/csrc/parrots/deform_roi_pool.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/deform_roi_pool_cuda.cu b/mmcv/ops/csrc/parrots/deform_roi_pool_cuda.cu index c856d6b821..d44399829e 100644 --- a/mmcv/ops/csrc/parrots/deform_roi_pool_cuda.cu +++ b/mmcv/ops/csrc/parrots/deform_roi_pool_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "deform_roi_pool_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/parrots/deform_roi_pool_parrots.cpp b/mmcv/ops/csrc/parrots/deform_roi_pool_parrots.cpp index 2fb8b371bb..fc2701d52d 100644 --- a/mmcv/ops/csrc/parrots/deform_roi_pool_parrots.cpp +++ b/mmcv/ops/csrc/parrots/deform_roi_pool_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/deform_roi_pool_pytorch.h b/mmcv/ops/csrc/parrots/deform_roi_pool_pytorch.h index 4e1604977e..ac0f2c324b 100644 --- a/mmcv/ops/csrc/parrots/deform_roi_pool_pytorch.h +++ b/mmcv/ops/csrc/parrots/deform_roi_pool_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef DEFORM_ROI_POOL_PYTORCH_H #define DEFORM_ROI_POOL_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/focal_loss.cpp b/mmcv/ops/csrc/parrots/focal_loss.cpp index ae650611e2..3e2c92b27a 100644 --- a/mmcv/ops/csrc/parrots/focal_loss.cpp +++ b/mmcv/ops/csrc/parrots/focal_loss.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/focal_loss_cuda.cu b/mmcv/ops/csrc/parrots/focal_loss_cuda.cu index c7cd215f5d..cb899f954f 100644 --- a/mmcv/ops/csrc/parrots/focal_loss_cuda.cu +++ b/mmcv/ops/csrc/parrots/focal_loss_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cuda_helper.hpp" #include "sigmoid_focal_loss_cuda_kernel.cuh" #include "softmax_focal_loss_cuda_kernel.cuh" diff --git a/mmcv/ops/csrc/parrots/focal_loss_parrots.cpp b/mmcv/ops/csrc/parrots/focal_loss_parrots.cpp index 3511d89a99..044e200c40 100644 --- a/mmcv/ops/csrc/parrots/focal_loss_parrots.cpp +++ b/mmcv/ops/csrc/parrots/focal_loss_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/focal_loss_pytorch.h b/mmcv/ops/csrc/parrots/focal_loss_pytorch.h index a08d0d0fc2..b7a00c8abc 100644 --- a/mmcv/ops/csrc/parrots/focal_loss_pytorch.h +++ b/mmcv/ops/csrc/parrots/focal_loss_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef FOCAL_LOSS_PYTORCH_H #define FOCAL_LOSS_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/fused_bias_leakyrelu.cpp b/mmcv/ops/csrc/parrots/fused_bias_leakyrelu.cpp index e27c67bb10..2eadfeba2e 100644 --- a/mmcv/ops/csrc/parrots/fused_bias_leakyrelu.cpp +++ b/mmcv/ops/csrc/parrots/fused_bias_leakyrelu.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // Modified from // from // https://github.com/rosinality/stylegan2-pytorch/blob/master/op/fused_bias_act.cpp diff --git a/mmcv/ops/csrc/parrots/fused_bias_parrots.cpp b/mmcv/ops/csrc/parrots/fused_bias_parrots.cpp index 96e6f6e1f1..47409ad20b 100644 --- a/mmcv/ops/csrc/parrots/fused_bias_parrots.cpp +++ b/mmcv/ops/csrc/parrots/fused_bias_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include diff --git a/mmcv/ops/csrc/parrots/masked_conv2d.cpp b/mmcv/ops/csrc/parrots/masked_conv2d.cpp index 8efc8eba71..338cd85898 100644 --- a/mmcv/ops/csrc/parrots/masked_conv2d.cpp +++ b/mmcv/ops/csrc/parrots/masked_conv2d.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/masked_conv2d_cuda.cu b/mmcv/ops/csrc/parrots/masked_conv2d_cuda.cu index 564195c337..022e189015 100644 --- a/mmcv/ops/csrc/parrots/masked_conv2d_cuda.cu +++ b/mmcv/ops/csrc/parrots/masked_conv2d_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "masked_conv2d_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/parrots/masked_conv2d_parrots.cpp b/mmcv/ops/csrc/parrots/masked_conv2d_parrots.cpp index 5a9ff64f75..39f19740c8 100644 --- a/mmcv/ops/csrc/parrots/masked_conv2d_parrots.cpp +++ b/mmcv/ops/csrc/parrots/masked_conv2d_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/masked_conv2d_pytorch.h b/mmcv/ops/csrc/parrots/masked_conv2d_pytorch.h index 1bcc02f62c..36d5643f60 100644 --- a/mmcv/ops/csrc/parrots/masked_conv2d_pytorch.h +++ b/mmcv/ops/csrc/parrots/masked_conv2d_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef MASKED_CONV2D_PYTORCH_H #define MASKED_CONV2D_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/modulated_deform_conv.cpp b/mmcv/ops/csrc/parrots/modulated_deform_conv.cpp index a7e6013fb3..159d843e4b 100644 --- a/mmcv/ops/csrc/parrots/modulated_deform_conv.cpp +++ b/mmcv/ops/csrc/parrots/modulated_deform_conv.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/modulated_deform_conv_cuda.cu b/mmcv/ops/csrc/parrots/modulated_deform_conv_cuda.cu index cba49373cc..6b7d64fc76 100644 --- a/mmcv/ops/csrc/parrots/modulated_deform_conv_cuda.cu +++ b/mmcv/ops/csrc/parrots/modulated_deform_conv_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "modulated_deform_conv_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/parrots/modulated_deform_conv_parrots.cpp b/mmcv/ops/csrc/parrots/modulated_deform_conv_parrots.cpp index de5ff63e0a..ae56305572 100644 --- a/mmcv/ops/csrc/parrots/modulated_deform_conv_parrots.cpp +++ b/mmcv/ops/csrc/parrots/modulated_deform_conv_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/modulated_deform_conv_pytorch.h b/mmcv/ops/csrc/parrots/modulated_deform_conv_pytorch.h index dda55d1085..381394d1ac 100644 --- a/mmcv/ops/csrc/parrots/modulated_deform_conv_pytorch.h +++ b/mmcv/ops/csrc/parrots/modulated_deform_conv_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef MODULATED_DEFORM_CONV_PYTORCH_H #define MODULATED_DEFORM_CONV_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/ms_deform_attn_parrots.cpp b/mmcv/ops/csrc/parrots/ms_deform_attn_parrots.cpp index 8b236cc822..a3ad786a8e 100644 --- a/mmcv/ops/csrc/parrots/ms_deform_attn_parrots.cpp +++ b/mmcv/ops/csrc/parrots/ms_deform_attn_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include diff --git a/mmcv/ops/csrc/parrots/nms.cpp b/mmcv/ops/csrc/parrots/nms.cpp index a6db461ffe..f51b50414f 100644 --- a/mmcv/ops/csrc/parrots/nms.cpp +++ b/mmcv/ops/csrc/parrots/nms.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/nms_cuda.cu b/mmcv/ops/csrc/parrots/nms_cuda.cu index 893acae52b..16cf64683f 100644 --- a/mmcv/ops/csrc/parrots/nms_cuda.cu +++ b/mmcv/ops/csrc/parrots/nms_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "nms_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/parrots/nms_parrots.cpp b/mmcv/ops/csrc/parrots/nms_parrots.cpp index 430314c757..db8b5f16e9 100644 --- a/mmcv/ops/csrc/parrots/nms_parrots.cpp +++ b/mmcv/ops/csrc/parrots/nms_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/nms_pytorch.h b/mmcv/ops/csrc/parrots/nms_pytorch.h index e6c59d6090..78c680e57c 100644 --- a/mmcv/ops/csrc/parrots/nms_pytorch.h +++ b/mmcv/ops/csrc/parrots/nms_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef NMS_PYTORCH_H #define NMS_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/psamask.cpp b/mmcv/ops/csrc/parrots/psamask.cpp index d5d0e56856..315bd2a250 100644 --- a/mmcv/ops/csrc/parrots/psamask.cpp +++ b/mmcv/ops/csrc/parrots/psamask.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // Modified from // https://github.com/hszhao/semseg/blob/master/lib/psa/src #include "pytorch_cpp_helper.hpp" diff --git a/mmcv/ops/csrc/parrots/psamask_cuda.cu b/mmcv/ops/csrc/parrots/psamask_cuda.cu index 7bea8aa387..fe7d1806bc 100644 --- a/mmcv/ops/csrc/parrots/psamask_cuda.cu +++ b/mmcv/ops/csrc/parrots/psamask_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // Modified from // https://github.com/hszhao/semseg/blob/master/lib/psa/src diff --git a/mmcv/ops/csrc/parrots/psamask_parrots.cpp b/mmcv/ops/csrc/parrots/psamask_parrots.cpp index 73f9b59a3f..f67102d02c 100644 --- a/mmcv/ops/csrc/parrots/psamask_parrots.cpp +++ b/mmcv/ops/csrc/parrots/psamask_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/psamask_pytorch.h b/mmcv/ops/csrc/parrots/psamask_pytorch.h index f35ed00ab7..c3f0579efb 100644 --- a/mmcv/ops/csrc/parrots/psamask_pytorch.h +++ b/mmcv/ops/csrc/parrots/psamask_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef PSAMASK_PYTORCH_H #define PSAMASK_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/roi_align.cpp b/mmcv/ops/csrc/parrots/roi_align.cpp index b79fafbeee..b44a742ceb 100644 --- a/mmcv/ops/csrc/parrots/roi_align.cpp +++ b/mmcv/ops/csrc/parrots/roi_align.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/roi_align_cuda.cu b/mmcv/ops/csrc/parrots/roi_align_cuda.cu index 822e9183f3..3d4f7614e4 100644 --- a/mmcv/ops/csrc/parrots/roi_align_cuda.cu +++ b/mmcv/ops/csrc/parrots/roi_align_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cuda_helper.hpp" #include "roi_align_cuda_kernel.cuh" diff --git a/mmcv/ops/csrc/parrots/roi_align_parrots.cpp b/mmcv/ops/csrc/parrots/roi_align_parrots.cpp index 72cdaf3303..60abea0927 100644 --- a/mmcv/ops/csrc/parrots/roi_align_parrots.cpp +++ b/mmcv/ops/csrc/parrots/roi_align_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/roi_align_pytorch.h b/mmcv/ops/csrc/parrots/roi_align_pytorch.h index 29eb19fcdd..4c60160984 100644 --- a/mmcv/ops/csrc/parrots/roi_align_pytorch.h +++ b/mmcv/ops/csrc/parrots/roi_align_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ROI_ALIGN_PYTORCH_H #define ROI_ALIGN_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/roi_align_rotated.cpp b/mmcv/ops/csrc/parrots/roi_align_rotated.cpp index cf2b63508e..c1bf57e36d 100644 --- a/mmcv/ops/csrc/parrots/roi_align_rotated.cpp +++ b/mmcv/ops/csrc/parrots/roi_align_rotated.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/roi_align_rotated_cuda.cu b/mmcv/ops/csrc/parrots/roi_align_rotated_cuda.cu index 929323ac12..50cf8fde44 100644 --- a/mmcv/ops/csrc/parrots/roi_align_rotated_cuda.cu +++ b/mmcv/ops/csrc/parrots/roi_align_rotated_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cuda_helper.hpp" #include "roi_align_rotated_cuda_kernel.cuh" diff --git a/mmcv/ops/csrc/parrots/roi_align_rotated_parrots.cpp b/mmcv/ops/csrc/parrots/roi_align_rotated_parrots.cpp index ed4f2bb04a..1a87ad27c2 100644 --- a/mmcv/ops/csrc/parrots/roi_align_rotated_parrots.cpp +++ b/mmcv/ops/csrc/parrots/roi_align_rotated_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/roi_align_rotated_pytorch.h b/mmcv/ops/csrc/parrots/roi_align_rotated_pytorch.h index 534cc5608a..eafe313714 100644 --- a/mmcv/ops/csrc/parrots/roi_align_rotated_pytorch.h +++ b/mmcv/ops/csrc/parrots/roi_align_rotated_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ROI_ALIGN_ROTATED_PYTORCH_H #define ROI_ALIGN_ROTATED_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/roi_pool.cpp b/mmcv/ops/csrc/parrots/roi_pool.cpp index e412705126..34c4b996bf 100644 --- a/mmcv/ops/csrc/parrots/roi_pool.cpp +++ b/mmcv/ops/csrc/parrots/roi_pool.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/roi_pool_cuda.cu b/mmcv/ops/csrc/parrots/roi_pool_cuda.cu index 313f1d74c8..d9cdf30509 100644 --- a/mmcv/ops/csrc/parrots/roi_pool_cuda.cu +++ b/mmcv/ops/csrc/parrots/roi_pool_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cuda_helper.hpp" #include "roi_pool_cuda_kernel.cuh" diff --git a/mmcv/ops/csrc/parrots/roi_pool_parrots.cpp b/mmcv/ops/csrc/parrots/roi_pool_parrots.cpp index 4a048765f0..0acde4a41e 100644 --- a/mmcv/ops/csrc/parrots/roi_pool_parrots.cpp +++ b/mmcv/ops/csrc/parrots/roi_pool_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/roi_pool_pytorch.h b/mmcv/ops/csrc/parrots/roi_pool_pytorch.h index c8f45452c7..d67a1502fe 100644 --- a/mmcv/ops/csrc/parrots/roi_pool_pytorch.h +++ b/mmcv/ops/csrc/parrots/roi_pool_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ROI_POOL_PYTORCH_H #define ROI_POOL_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/sync_bn.cpp b/mmcv/ops/csrc/parrots/sync_bn.cpp index b8b29a8b18..2e023a8599 100644 --- a/mmcv/ops/csrc/parrots/sync_bn.cpp +++ b/mmcv/ops/csrc/parrots/sync_bn.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/sync_bn_cuda.cu b/mmcv/ops/csrc/parrots/sync_bn_cuda.cu index 334d9e0015..657c81701b 100644 --- a/mmcv/ops/csrc/parrots/sync_bn_cuda.cu +++ b/mmcv/ops/csrc/parrots/sync_bn_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cuda_helper.hpp" #include "sync_bn_cuda_kernel.cuh" diff --git a/mmcv/ops/csrc/parrots/sync_bn_parrots.cpp b/mmcv/ops/csrc/parrots/sync_bn_parrots.cpp index 8cdbdbbbd7..6130c3ff59 100644 --- a/mmcv/ops/csrc/parrots/sync_bn_parrots.cpp +++ b/mmcv/ops/csrc/parrots/sync_bn_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/sync_bn_pytorch.h b/mmcv/ops/csrc/parrots/sync_bn_pytorch.h index cf21a04000..6bd6a7fada 100644 --- a/mmcv/ops/csrc/parrots/sync_bn_pytorch.h +++ b/mmcv/ops/csrc/parrots/sync_bn_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef SYNC_BN_PYTORCH_H #define SYNC_BN_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/tin_shift.cpp b/mmcv/ops/csrc/parrots/tin_shift.cpp index 255ce4fffe..a10af24d3c 100644 --- a/mmcv/ops/csrc/parrots/tin_shift.cpp +++ b/mmcv/ops/csrc/parrots/tin_shift.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/parrots/tin_shift_cuda.cu b/mmcv/ops/csrc/parrots/tin_shift_cuda.cu index 996816ee4f..d58fd9afed 100644 --- a/mmcv/ops/csrc/parrots/tin_shift_cuda.cu +++ b/mmcv/ops/csrc/parrots/tin_shift_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cuda_helper.hpp" #include "tin_shift_cuda_kernel.cuh" diff --git a/mmcv/ops/csrc/parrots/tin_shift_parrots.cpp b/mmcv/ops/csrc/parrots/tin_shift_parrots.cpp index e2f7cc0472..b0920928e7 100644 --- a/mmcv/ops/csrc/parrots/tin_shift_parrots.cpp +++ b/mmcv/ops/csrc/parrots/tin_shift_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/parrots/tin_shift_pytorch.h b/mmcv/ops/csrc/parrots/tin_shift_pytorch.h index 32143c152c..fe72383764 100644 --- a/mmcv/ops/csrc/parrots/tin_shift_pytorch.h +++ b/mmcv/ops/csrc/parrots/tin_shift_pytorch.h @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef TIN_SHIFT_PYTORCH_H #define TIN_SHIFT_PYTORCH_H #include diff --git a/mmcv/ops/csrc/parrots/upfirdn2d.cpp b/mmcv/ops/csrc/parrots/upfirdn2d.cpp index 0d90c301c3..c966822b60 100644 --- a/mmcv/ops/csrc/parrots/upfirdn2d.cpp +++ b/mmcv/ops/csrc/parrots/upfirdn2d.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // from // https://github.com/rosinality/stylegan2-pytorch/blob/master/op/upfirdn2d.cpp #include "pytorch_cpp_helper.hpp" diff --git a/mmcv/ops/csrc/parrots/upfirdn2d_parrots.cpp b/mmcv/ops/csrc/parrots/upfirdn2d_parrots.cpp index 67eff741dd..f0c50db5cd 100644 --- a/mmcv/ops/csrc/parrots/upfirdn2d_parrots.cpp +++ b/mmcv/ops/csrc/parrots/upfirdn2d_parrots.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include diff --git a/mmcv/ops/csrc/psamask_cuda_kernel.cuh b/mmcv/ops/csrc/psamask_cuda_kernel.cuh index 3e22944c8c..5d946686bd 100644 --- a/mmcv/ops/csrc/psamask_cuda_kernel.cuh +++ b/mmcv/ops/csrc/psamask_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef PSAMASK_CUDA_KERNEL_CUH #define PSAMASK_CUDA_KERNEL_CUH diff --git a/mmcv/ops/csrc/pytorch/bbox_overlaps.cpp b/mmcv/ops/csrc/pytorch/bbox_overlaps.cpp index 23bf7d4347..073110dfc8 100644 --- a/mmcv/ops/csrc/pytorch/bbox_overlaps.cpp +++ b/mmcv/ops/csrc/pytorch/bbox_overlaps.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/bbox_overlaps_cuda.cu b/mmcv/ops/csrc/pytorch/bbox_overlaps_cuda.cu index d6e26c24d1..16679c766f 100644 --- a/mmcv/ops/csrc/pytorch/bbox_overlaps_cuda.cu +++ b/mmcv/ops/csrc/pytorch/bbox_overlaps_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "bbox_overlaps_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/pytorch/border_align.cpp b/mmcv/ops/csrc/pytorch/border_align.cpp index 78351e2a5f..bb14962c9f 100644 --- a/mmcv/ops/csrc/pytorch/border_align.cpp +++ b/mmcv/ops/csrc/pytorch/border_align.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/border_align_cuda.cu b/mmcv/ops/csrc/pytorch/border_align_cuda.cu index 06ba452f65..3aeefea5dd 100644 --- a/mmcv/ops/csrc/pytorch/border_align_cuda.cu +++ b/mmcv/ops/csrc/pytorch/border_align_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "border_align_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/pytorch/carafe.cpp b/mmcv/ops/csrc/pytorch/carafe.cpp index 67619284fa..c4137378cd 100644 --- a/mmcv/ops/csrc/pytorch/carafe.cpp +++ b/mmcv/ops/csrc/pytorch/carafe.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/carafe_cuda.cu b/mmcv/ops/csrc/pytorch/carafe_cuda.cu index 2f9ac05302..984e734f9e 100644 --- a/mmcv/ops/csrc/pytorch/carafe_cuda.cu +++ b/mmcv/ops/csrc/pytorch/carafe_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "carafe_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/pytorch/carafe_naive.cpp b/mmcv/ops/csrc/pytorch/carafe_naive.cpp index bb0aa0978b..d6ebda35a3 100644 --- a/mmcv/ops/csrc/pytorch/carafe_naive.cpp +++ b/mmcv/ops/csrc/pytorch/carafe_naive.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/carafe_naive_cuda.cu b/mmcv/ops/csrc/pytorch/carafe_naive_cuda.cu index ffc05c8fa5..2fc5667686 100644 --- a/mmcv/ops/csrc/pytorch/carafe_naive_cuda.cu +++ b/mmcv/ops/csrc/pytorch/carafe_naive_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "carafe_naive_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/pytorch/cc_attention.cpp b/mmcv/ops/csrc/pytorch/cc_attention.cpp index 9d7e48a4da..d76a04456e 100644 --- a/mmcv/ops/csrc/pytorch/cc_attention.cpp +++ b/mmcv/ops/csrc/pytorch/cc_attention.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/cc_attention_cuda.cu b/mmcv/ops/csrc/pytorch/cc_attention_cuda.cu index fd4e7fd128..52db536c2a 100644 --- a/mmcv/ops/csrc/pytorch/cc_attention_cuda.cu +++ b/mmcv/ops/csrc/pytorch/cc_attention_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // Modified from // https://github.com/LikeLy-Journey/SegmenTron/blob/master/segmentron/modules/csrc/criss_cross_attention/ca_cuda.cu diff --git a/mmcv/ops/csrc/pytorch/contour_expand.cpp b/mmcv/ops/csrc/pytorch/contour_expand.cpp index 399fd52625..7639ae5673 100755 --- a/mmcv/ops/csrc/pytorch/contour_expand.cpp +++ b/mmcv/ops/csrc/pytorch/contour_expand.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // It is modified from https://github.com/whai362/PSENet #include #include diff --git a/mmcv/ops/csrc/pytorch/corner_pool.cpp b/mmcv/ops/csrc/pytorch/corner_pool.cpp index 58da7e9ea6..732cdb0562 100644 --- a/mmcv/ops/csrc/pytorch/corner_pool.cpp +++ b/mmcv/ops/csrc/pytorch/corner_pool.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // Modified from // https://github.com/princeton-vl/CornerNet-Lite/tree/master/core/models/py_utils/_cpools/src #include "pytorch_cpp_helper.hpp" diff --git a/mmcv/ops/csrc/pytorch/deform_conv.cpp b/mmcv/ops/csrc/pytorch/deform_conv.cpp index 9b2dc44950..4da104e836 100644 --- a/mmcv/ops/csrc/pytorch/deform_conv.cpp +++ b/mmcv/ops/csrc/pytorch/deform_conv.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/deform_conv_cuda.cu b/mmcv/ops/csrc/pytorch/deform_conv_cuda.cu index f85f33d3c8..2a1aedcf6f 100644 --- a/mmcv/ops/csrc/pytorch/deform_conv_cuda.cu +++ b/mmcv/ops/csrc/pytorch/deform_conv_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "deform_conv_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/pytorch/deform_roi_pool.cpp b/mmcv/ops/csrc/pytorch/deform_roi_pool.cpp index 1022ea91f8..b4654c0d9a 100644 --- a/mmcv/ops/csrc/pytorch/deform_roi_pool.cpp +++ b/mmcv/ops/csrc/pytorch/deform_roi_pool.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/deform_roi_pool_cuda.cu b/mmcv/ops/csrc/pytorch/deform_roi_pool_cuda.cu index c856d6b821..d44399829e 100644 --- a/mmcv/ops/csrc/pytorch/deform_roi_pool_cuda.cu +++ b/mmcv/ops/csrc/pytorch/deform_roi_pool_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "deform_roi_pool_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/pytorch/focal_loss.cpp b/mmcv/ops/csrc/pytorch/focal_loss.cpp index ae650611e2..3e2c92b27a 100644 --- a/mmcv/ops/csrc/pytorch/focal_loss.cpp +++ b/mmcv/ops/csrc/pytorch/focal_loss.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/focal_loss_cuda.cu b/mmcv/ops/csrc/pytorch/focal_loss_cuda.cu index c7cd215f5d..cb899f954f 100644 --- a/mmcv/ops/csrc/pytorch/focal_loss_cuda.cu +++ b/mmcv/ops/csrc/pytorch/focal_loss_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cuda_helper.hpp" #include "sigmoid_focal_loss_cuda_kernel.cuh" #include "softmax_focal_loss_cuda_kernel.cuh" diff --git a/mmcv/ops/csrc/pytorch/info.cpp b/mmcv/ops/csrc/pytorch/info.cpp index fd01c2e371..fb3756c582 100644 --- a/mmcv/ops/csrc/pytorch/info.cpp +++ b/mmcv/ops/csrc/pytorch/info.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // modified from // https://github.com/facebookresearch/detectron2/blob/master/detectron2/layers/csrc/vision.cpp #include "pytorch_cpp_helper.hpp" diff --git a/mmcv/ops/csrc/pytorch/masked_conv2d.cpp b/mmcv/ops/csrc/pytorch/masked_conv2d.cpp index 8efc8eba71..338cd85898 100644 --- a/mmcv/ops/csrc/pytorch/masked_conv2d.cpp +++ b/mmcv/ops/csrc/pytorch/masked_conv2d.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/masked_conv2d_cuda.cu b/mmcv/ops/csrc/pytorch/masked_conv2d_cuda.cu index 564195c337..022e189015 100644 --- a/mmcv/ops/csrc/pytorch/masked_conv2d_cuda.cu +++ b/mmcv/ops/csrc/pytorch/masked_conv2d_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "masked_conv2d_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/pytorch/modulated_deform_conv.cpp b/mmcv/ops/csrc/pytorch/modulated_deform_conv.cpp index a7e6013fb3..159d843e4b 100644 --- a/mmcv/ops/csrc/pytorch/modulated_deform_conv.cpp +++ b/mmcv/ops/csrc/pytorch/modulated_deform_conv.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/modulated_deform_conv_cuda.cu b/mmcv/ops/csrc/pytorch/modulated_deform_conv_cuda.cu index cba49373cc..6b7d64fc76 100644 --- a/mmcv/ops/csrc/pytorch/modulated_deform_conv_cuda.cu +++ b/mmcv/ops/csrc/pytorch/modulated_deform_conv_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "modulated_deform_conv_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/pytorch/nms.cpp b/mmcv/ops/csrc/pytorch/nms.cpp index a6db461ffe..f51b50414f 100644 --- a/mmcv/ops/csrc/pytorch/nms.cpp +++ b/mmcv/ops/csrc/pytorch/nms.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/nms_cuda.cu b/mmcv/ops/csrc/pytorch/nms_cuda.cu index 893acae52b..16cf64683f 100644 --- a/mmcv/ops/csrc/pytorch/nms_cuda.cu +++ b/mmcv/ops/csrc/pytorch/nms_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "nms_cuda_kernel.cuh" #include "pytorch_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/pytorch/pixel_group.cpp b/mmcv/ops/csrc/pytorch/pixel_group.cpp index 6c771ae2c5..5c6af46eb2 100755 --- a/mmcv/ops/csrc/pytorch/pixel_group.cpp +++ b/mmcv/ops/csrc/pytorch/pixel_group.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // It is modified from https://github.com/WenmuZhou/PAN.pytorch #include "pytorch_cpp_helper.hpp" diff --git a/mmcv/ops/csrc/pytorch/psamask.cpp b/mmcv/ops/csrc/pytorch/psamask.cpp index d5d0e56856..315bd2a250 100644 --- a/mmcv/ops/csrc/pytorch/psamask.cpp +++ b/mmcv/ops/csrc/pytorch/psamask.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // Modified from // https://github.com/hszhao/semseg/blob/master/lib/psa/src #include "pytorch_cpp_helper.hpp" diff --git a/mmcv/ops/csrc/pytorch/psamask_cuda.cu b/mmcv/ops/csrc/pytorch/psamask_cuda.cu index 7bea8aa387..fe7d1806bc 100644 --- a/mmcv/ops/csrc/pytorch/psamask_cuda.cu +++ b/mmcv/ops/csrc/pytorch/psamask_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // Modified from // https://github.com/hszhao/semseg/blob/master/lib/psa/src diff --git a/mmcv/ops/csrc/pytorch/pybind.cpp b/mmcv/ops/csrc/pytorch/pybind.cpp index 0b88e55658..cb1c778b3a 100644 --- a/mmcv/ops/csrc/pytorch/pybind.cpp +++ b/mmcv/ops/csrc/pytorch/pybind.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" std::string get_compiler_version(); diff --git a/mmcv/ops/csrc/pytorch/roi_align.cpp b/mmcv/ops/csrc/pytorch/roi_align.cpp index b79fafbeee..b44a742ceb 100644 --- a/mmcv/ops/csrc/pytorch/roi_align.cpp +++ b/mmcv/ops/csrc/pytorch/roi_align.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/roi_align_cuda.cu b/mmcv/ops/csrc/pytorch/roi_align_cuda.cu index 822e9183f3..3d4f7614e4 100644 --- a/mmcv/ops/csrc/pytorch/roi_align_cuda.cu +++ b/mmcv/ops/csrc/pytorch/roi_align_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cuda_helper.hpp" #include "roi_align_cuda_kernel.cuh" diff --git a/mmcv/ops/csrc/pytorch/roi_align_rotated.cpp b/mmcv/ops/csrc/pytorch/roi_align_rotated.cpp index 6c35a5fd27..9a708f1bbb 100644 --- a/mmcv/ops/csrc/pytorch/roi_align_rotated.cpp +++ b/mmcv/ops/csrc/pytorch/roi_align_rotated.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/roi_align_rotated_cuda.cu b/mmcv/ops/csrc/pytorch/roi_align_rotated_cuda.cu index 8618071d7e..099172cdcb 100644 --- a/mmcv/ops/csrc/pytorch/roi_align_rotated_cuda.cu +++ b/mmcv/ops/csrc/pytorch/roi_align_rotated_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cuda_helper.hpp" #include "roi_align_rotated_cuda_kernel.cuh" diff --git a/mmcv/ops/csrc/pytorch/roi_pool.cpp b/mmcv/ops/csrc/pytorch/roi_pool.cpp index e412705126..34c4b996bf 100644 --- a/mmcv/ops/csrc/pytorch/roi_pool.cpp +++ b/mmcv/ops/csrc/pytorch/roi_pool.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/roi_pool_cuda.cu b/mmcv/ops/csrc/pytorch/roi_pool_cuda.cu index 313f1d74c8..d9cdf30509 100644 --- a/mmcv/ops/csrc/pytorch/roi_pool_cuda.cu +++ b/mmcv/ops/csrc/pytorch/roi_pool_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cuda_helper.hpp" #include "roi_pool_cuda_kernel.cuh" diff --git a/mmcv/ops/csrc/pytorch/sync_bn.cpp b/mmcv/ops/csrc/pytorch/sync_bn.cpp index b8b29a8b18..2e023a8599 100644 --- a/mmcv/ops/csrc/pytorch/sync_bn.cpp +++ b/mmcv/ops/csrc/pytorch/sync_bn.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/sync_bn_cuda.cu b/mmcv/ops/csrc/pytorch/sync_bn_cuda.cu index 334d9e0015..657c81701b 100644 --- a/mmcv/ops/csrc/pytorch/sync_bn_cuda.cu +++ b/mmcv/ops/csrc/pytorch/sync_bn_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cuda_helper.hpp" #include "sync_bn_cuda_kernel.cuh" diff --git a/mmcv/ops/csrc/pytorch/tin_shift.cpp b/mmcv/ops/csrc/pytorch/tin_shift.cpp index 255ce4fffe..a10af24d3c 100644 --- a/mmcv/ops/csrc/pytorch/tin_shift.cpp +++ b/mmcv/ops/csrc/pytorch/tin_shift.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cpp_helper.hpp" #ifdef MMCV_WITH_CUDA diff --git a/mmcv/ops/csrc/pytorch/tin_shift_cuda.cu b/mmcv/ops/csrc/pytorch/tin_shift_cuda.cu index 996816ee4f..d58fd9afed 100644 --- a/mmcv/ops/csrc/pytorch/tin_shift_cuda.cu +++ b/mmcv/ops/csrc/pytorch/tin_shift_cuda.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "pytorch_cuda_helper.hpp" #include "tin_shift_cuda_kernel.cuh" diff --git a/mmcv/ops/csrc/roi_align_cuda_kernel.cuh b/mmcv/ops/csrc/roi_align_cuda_kernel.cuh index d350843bec..4541462afd 100644 --- a/mmcv/ops/csrc/roi_align_cuda_kernel.cuh +++ b/mmcv/ops/csrc/roi_align_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ROI_ALIGN_CUDA_KERNEL_CUH #define ROI_ALIGN_CUDA_KERNEL_CUH diff --git a/mmcv/ops/csrc/roi_pool_cuda_kernel.cuh b/mmcv/ops/csrc/roi_pool_cuda_kernel.cuh index 72a2750ef8..3d7eae66b9 100644 --- a/mmcv/ops/csrc/roi_pool_cuda_kernel.cuh +++ b/mmcv/ops/csrc/roi_pool_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef ROI_POOL_CUDA_KERNEL_CUH #define ROI_POOL_CUDA_KERNEL_CUH diff --git a/mmcv/ops/csrc/sigmoid_focal_loss_cuda_kernel.cuh b/mmcv/ops/csrc/sigmoid_focal_loss_cuda_kernel.cuh index fb7c636eb7..1eb5f8fccc 100644 --- a/mmcv/ops/csrc/sigmoid_focal_loss_cuda_kernel.cuh +++ b/mmcv/ops/csrc/sigmoid_focal_loss_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef SIGMOID_FOCAL_LOSS_CUDA_KERNEL_CUH #define SIGMOID_FOCAL_LOSS_CUDA_KERNEL_CUH diff --git a/mmcv/ops/csrc/softmax_focal_loss_cuda_kernel.cuh b/mmcv/ops/csrc/softmax_focal_loss_cuda_kernel.cuh index c8ff05b840..631b2c6175 100644 --- a/mmcv/ops/csrc/softmax_focal_loss_cuda_kernel.cuh +++ b/mmcv/ops/csrc/softmax_focal_loss_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef SOFTMAX_FOCAL_LOSS_CUDA_KERNEL_CUH #define SOFTMAX_FOCAL_LOSS_CUDA_KERNEL_CUH diff --git a/mmcv/ops/csrc/sync_bn_cuda_kernel.cuh b/mmcv/ops/csrc/sync_bn_cuda_kernel.cuh index 41844f8d07..4ec6a46688 100644 --- a/mmcv/ops/csrc/sync_bn_cuda_kernel.cuh +++ b/mmcv/ops/csrc/sync_bn_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef SYNCBN_CUDA_KERNEL_CUH #define SYNCBN_CUDA_KERNEL_CUH diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_corner_pool.cpp b/mmcv/ops/csrc/tensorrt/plugins/trt_corner_pool.cpp index ac49c8b29e..d405a7d6b1 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_corner_pool.cpp +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_corner_pool.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "trt_corner_pool.hpp" #include diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_corner_pool_kernel.cu b/mmcv/ops/csrc/tensorrt/plugins/trt_corner_pool_kernel.cu index 0d7bf03f54..b4578700b7 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_corner_pool_kernel.cu +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_corner_pool_kernel.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "common_cuda_helper.hpp" #include "trt_cuda_helper.cuh" #include "trt_plugin_helper.hpp" diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_cuda_helper.cu b/mmcv/ops/csrc/tensorrt/plugins/trt_cuda_helper.cu index 8ddcca9703..f76c5f229f 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_cuda_helper.cu +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_cuda_helper.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include "common_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_cummaxmin.cpp b/mmcv/ops/csrc/tensorrt/plugins/trt_cummaxmin.cpp index 2e920cfed0..40bebbca2c 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_cummaxmin.cpp +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_cummaxmin.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "trt_cummaxmin.hpp" #include diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_cummaxmin_kernel.cu b/mmcv/ops/csrc/tensorrt/plugins/trt_cummaxmin_kernel.cu index 753104071f..1ff2e4e234 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_cummaxmin_kernel.cu +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_cummaxmin_kernel.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "common_cuda_helper.hpp" #include "trt_cuda_helper.cuh" diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_deform_conv.cpp b/mmcv/ops/csrc/tensorrt/plugins/trt_deform_conv.cpp index fa008e4190..76056dee57 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_deform_conv.cpp +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_deform_conv.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "trt_deform_conv.hpp" #include diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_deform_conv_kernel.cu b/mmcv/ops/csrc/tensorrt/plugins/trt_deform_conv_kernel.cu index b5eefa6e71..b1f6989040 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_deform_conv_kernel.cu +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_deform_conv_kernel.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include "common_cuda_helper.hpp" diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_grid_sampler.cpp b/mmcv/ops/csrc/tensorrt/plugins/trt_grid_sampler.cpp index d10a3f8aa0..d955ca53e5 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_grid_sampler.cpp +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_grid_sampler.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "trt_grid_sampler.hpp" #include diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_grid_sampler_kernel.cu b/mmcv/ops/csrc/tensorrt/plugins/trt_grid_sampler_kernel.cu index eb41e58af9..727710b1b7 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_grid_sampler_kernel.cu +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_grid_sampler_kernel.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // modified from // https://github.com/pytorch/pytorch/blob/ec683299ebabf297a3504c76248d37be830e4342/aten/src/ATen/native/cuda/GridSampler.cuh // and diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_instance_norm.cpp b/mmcv/ops/csrc/tensorrt/plugins/trt_instance_norm.cpp index 1efdcb3a8d..b9b363a810 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_instance_norm.cpp +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_instance_norm.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved // Modified from: // https://github.com/NVIDIA/TensorRT/blob/master/plugin/instanceNormalizationPlugin/instanceNormalizationPlugin.cpp diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_modulated_deform_conv.cpp b/mmcv/ops/csrc/tensorrt/plugins/trt_modulated_deform_conv.cpp index 88ab2cf67e..330ee8060d 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_modulated_deform_conv.cpp +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_modulated_deform_conv.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "trt_modulated_deform_conv.hpp" #include diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_modulated_deform_conv_kernel.cu b/mmcv/ops/csrc/tensorrt/plugins/trt_modulated_deform_conv_kernel.cu index 258ae783f6..f29a7a79d5 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_modulated_deform_conv_kernel.cu +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_modulated_deform_conv_kernel.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_nms.cpp b/mmcv/ops/csrc/tensorrt/plugins/trt_nms.cpp index 3868cfadc4..64be215e7c 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_nms.cpp +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_nms.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "trt_nms.hpp" #include diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_nms_kernel.cu b/mmcv/ops/csrc/tensorrt/plugins/trt_nms_kernel.cu index 0d61623f27..e8ca069392 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_nms_kernel.cu +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_nms_kernel.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include #include diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_plugin.cpp b/mmcv/ops/csrc/tensorrt/plugins/trt_plugin.cpp index d5a1770529..eec1bb2c78 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_plugin.cpp +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_plugin.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "trt_plugin.hpp" #include "trt_corner_pool.hpp" diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_roi_align.cpp b/mmcv/ops/csrc/tensorrt/plugins/trt_roi_align.cpp index 143e8ec717..97700f939b 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_roi_align.cpp +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_roi_align.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "trt_roi_align.hpp" #include diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_roi_align_kernel.cu b/mmcv/ops/csrc/tensorrt/plugins/trt_roi_align_kernel.cu index 8c9a851ebf..650bc685cb 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_roi_align_kernel.cu +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_roi_align_kernel.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "common_cuda_helper.hpp" #include "roi_align_cuda_kernel.cuh" diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_scatternd.cpp b/mmcv/ops/csrc/tensorrt/plugins/trt_scatternd.cpp index 8adff24772..0d07790209 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_scatternd.cpp +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_scatternd.cpp @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include "trt_scatternd.hpp" #include diff --git a/mmcv/ops/csrc/tensorrt/plugins/trt_scatternd_kernel.cu b/mmcv/ops/csrc/tensorrt/plugins/trt_scatternd_kernel.cu index e7bf44a1c2..3c7423ac33 100644 --- a/mmcv/ops/csrc/tensorrt/plugins/trt_scatternd_kernel.cu +++ b/mmcv/ops/csrc/tensorrt/plugins/trt_scatternd_kernel.cu @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #include #include diff --git a/mmcv/ops/csrc/tensorrt/trt_cuda_helper.cuh b/mmcv/ops/csrc/tensorrt/trt_cuda_helper.cuh index db42dae9e1..e7df9c0cf7 100644 --- a/mmcv/ops/csrc/tensorrt/trt_cuda_helper.cuh +++ b/mmcv/ops/csrc/tensorrt/trt_cuda_helper.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef TRT_CUDA_HELPER_HPP #define TRT_CUDA_HELPER_HPP #include diff --git a/mmcv/ops/csrc/tin_shift_cuda_kernel.cuh b/mmcv/ops/csrc/tin_shift_cuda_kernel.cuh index 352244bb21..4d1159a515 100644 --- a/mmcv/ops/csrc/tin_shift_cuda_kernel.cuh +++ b/mmcv/ops/csrc/tin_shift_cuda_kernel.cuh @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved #ifndef TIN_SHIFT_CUDA_KERNEL_CUH #define TIN_SHIFT_CUDA_KERNEL_CUH diff --git a/mmcv/ops/deform_conv.py b/mmcv/ops/deform_conv.py index 04666f58db..5e04622386 100644 --- a/mmcv/ops/deform_conv.py +++ b/mmcv/ops/deform_conv.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import math from typing import Tuple, Union diff --git a/mmcv/ops/deform_roi_pool.py b/mmcv/ops/deform_roi_pool.py index 8ec9dd7fd5..18319a049b 100644 --- a/mmcv/ops/deform_roi_pool.py +++ b/mmcv/ops/deform_roi_pool.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from torch import nn from torch.autograd import Function from torch.autograd.function import once_differentiable diff --git a/mmcv/ops/deprecated_wrappers.py b/mmcv/ops/deprecated_wrappers.py index 863611b2e1..a2e593df9e 100644 --- a/mmcv/ops/deprecated_wrappers.py +++ b/mmcv/ops/deprecated_wrappers.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. # This file is for backward compatibility. # Module wrappers for empty tensor have been moved to mmcv.cnn.bricks. import warnings diff --git a/mmcv/ops/focal_loss.py b/mmcv/ops/focal_loss.py index 9e05b16d5e..464e311426 100644 --- a/mmcv/ops/focal_loss.py +++ b/mmcv/ops/focal_loss.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from torch.autograd import Function diff --git a/mmcv/ops/info.py b/mmcv/ops/info.py index 01d9a6fdd6..29f2e5598a 100644 --- a/mmcv/ops/info.py +++ b/mmcv/ops/info.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import glob import os diff --git a/mmcv/ops/masked_conv.py b/mmcv/ops/masked_conv.py index 88b536c22b..3b8ead3659 100644 --- a/mmcv/ops/masked_conv.py +++ b/mmcv/ops/masked_conv.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import math import torch diff --git a/mmcv/ops/merge_cells.py b/mmcv/ops/merge_cells.py index e3b1775099..48ca8cc0a8 100644 --- a/mmcv/ops/merge_cells.py +++ b/mmcv/ops/merge_cells.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from abc import abstractmethod import torch diff --git a/mmcv/ops/modulated_deform_conv.py b/mmcv/ops/modulated_deform_conv.py index d26f61a0a1..341798059e 100644 --- a/mmcv/ops/modulated_deform_conv.py +++ b/mmcv/ops/modulated_deform_conv.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import math import torch diff --git a/mmcv/ops/multi_scale_deform_attn.py b/mmcv/ops/multi_scale_deform_attn.py index 45b22468a4..01da3bc4a6 100644 --- a/mmcv/ops/multi_scale_deform_attn.py +++ b/mmcv/ops/multi_scale_deform_attn.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import math import warnings diff --git a/mmcv/ops/pixel_group.py b/mmcv/ops/pixel_group.py index 5aa5e0d7b2..2f286d170d 100644 --- a/mmcv/ops/pixel_group.py +++ b/mmcv/ops/pixel_group.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import numpy as np import torch diff --git a/mmcv/ops/roi_align.py b/mmcv/ops/roi_align.py index d050c2ac88..0755aefc66 100644 --- a/mmcv/ops/roi_align.py +++ b/mmcv/ops/roi_align.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from torch.autograd import Function diff --git a/mmcv/ops/roi_align_rotated.py b/mmcv/ops/roi_align_rotated.py index 3dc1852963..0ce4961a35 100644 --- a/mmcv/ops/roi_align_rotated.py +++ b/mmcv/ops/roi_align_rotated.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch.nn as nn from torch.autograd import Function diff --git a/mmcv/ops/roi_pool.py b/mmcv/ops/roi_pool.py index 20e244d8a4..d339d8f294 100644 --- a/mmcv/ops/roi_pool.py +++ b/mmcv/ops/roi_pool.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn from torch.autograd import Function diff --git a/mmcv/ops/saconv.py b/mmcv/ops/saconv.py index 7eab9e83d1..111fab9286 100644 --- a/mmcv/ops/saconv.py +++ b/mmcv/ops/saconv.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.nn as nn import torch.nn.functional as F diff --git a/mmcv/ops/sync_bn.py b/mmcv/ops/sync_bn.py index b2499f9dcc..3f3a166c87 100644 --- a/mmcv/ops/sync_bn.py +++ b/mmcv/ops/sync_bn.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.distributed as dist import torch.nn.functional as F diff --git a/mmcv/ops/tin_shift.py b/mmcv/ops/tin_shift.py index 5560af4469..74043637cc 100644 --- a/mmcv/ops/tin_shift.py +++ b/mmcv/ops/tin_shift.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. # Code reference from "Temporal Interlacing Network" # https://github.com/deepcs233/TIN/blob/master/cuda_shift/rtc_wrap.py # Hao Shao, Shengju Qian, Yu Liu diff --git a/mmcv/parallel/__init__.py b/mmcv/parallel/__init__.py index 98c29743dc..2ed2c17ad3 100644 --- a/mmcv/parallel/__init__.py +++ b/mmcv/parallel/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .collate import collate from .data_container import DataContainer from .data_parallel import MMDataParallel diff --git a/mmcv/parallel/_functions.py b/mmcv/parallel/_functions.py index ad19415f37..9b5a8a4448 100644 --- a/mmcv/parallel/_functions.py +++ b/mmcv/parallel/_functions.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import torch from torch.nn.parallel._functions import _get_stream diff --git a/mmcv/parallel/collate.py b/mmcv/parallel/collate.py index 21155cbb89..ad749197df 100644 --- a/mmcv/parallel/collate.py +++ b/mmcv/parallel/collate.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from collections.abc import Mapping, Sequence import torch diff --git a/mmcv/parallel/data_container.py b/mmcv/parallel/data_container.py index 7511c04f98..cedb0d32a5 100644 --- a/mmcv/parallel/data_container.py +++ b/mmcv/parallel/data_container.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import functools import torch diff --git a/mmcv/parallel/data_parallel.py b/mmcv/parallel/data_parallel.py index 1ab2163703..44b9b412b1 100644 --- a/mmcv/parallel/data_parallel.py +++ b/mmcv/parallel/data_parallel.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from itertools import chain from torch.nn.parallel import DataParallel diff --git a/mmcv/parallel/distributed.py b/mmcv/parallel/distributed.py index 2b9d51f263..b799a213d8 100644 --- a/mmcv/parallel/distributed.py +++ b/mmcv/parallel/distributed.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import torch from torch.nn.parallel.distributed import (DistributedDataParallel, _find_tensors) diff --git a/mmcv/parallel/distributed_deprecated.py b/mmcv/parallel/distributed_deprecated.py index 1184bbe4d5..b593d4a9e0 100644 --- a/mmcv/parallel/distributed_deprecated.py +++ b/mmcv/parallel/distributed_deprecated.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import torch import torch.distributed as dist import torch.nn as nn diff --git a/mmcv/parallel/registry.py b/mmcv/parallel/registry.py index 6e592c75c1..144f9fb168 100644 --- a/mmcv/parallel/registry.py +++ b/mmcv/parallel/registry.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from torch.nn.parallel import DataParallel, DistributedDataParallel from mmcv.utils import Registry diff --git a/mmcv/parallel/scatter_gather.py b/mmcv/parallel/scatter_gather.py index 78dba14ebb..900ff88566 100644 --- a/mmcv/parallel/scatter_gather.py +++ b/mmcv/parallel/scatter_gather.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import torch from torch.nn.parallel._functions import Scatter as OrigScatter diff --git a/mmcv/parallel/utils.py b/mmcv/parallel/utils.py index ac7a0e4b5a..0f5712cb42 100644 --- a/mmcv/parallel/utils.py +++ b/mmcv/parallel/utils.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .registry import MODULE_WRAPPERS diff --git a/mmcv/runner/__init__.py b/mmcv/runner/__init__.py index 61d7b14d27..34d58cb8fb 100644 --- a/mmcv/runner/__init__.py +++ b/mmcv/runner/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .base_module import BaseModule, ModuleList, Sequential from .base_runner import BaseRunner from .builder import RUNNERS, build_runner diff --git a/mmcv/runner/base_module.py b/mmcv/runner/base_module.py index ac2d7fcaaf..2b8e9aaed6 100644 --- a/mmcv/runner/base_module.py +++ b/mmcv/runner/base_module.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import copy import warnings from abc import ABCMeta diff --git a/mmcv/runner/base_runner.py b/mmcv/runner/base_runner.py index 1f1fa01845..d7ed4cb713 100644 --- a/mmcv/runner/base_runner.py +++ b/mmcv/runner/base_runner.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import copy import logging import os.path as osp diff --git a/mmcv/runner/builder.py b/mmcv/runner/builder.py index e9989b0248..2bfe05576e 100644 --- a/mmcv/runner/builder.py +++ b/mmcv/runner/builder.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from ..utils import Registry, build_from_cfg RUNNERS = Registry('runner') diff --git a/mmcv/runner/checkpoint.py b/mmcv/runner/checkpoint.py index bb19169dd9..277d06730f 100644 --- a/mmcv/runner/checkpoint.py +++ b/mmcv/runner/checkpoint.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import io import os import os.path as osp diff --git a/mmcv/runner/dist_utils.py b/mmcv/runner/dist_utils.py index 056f6f8c36..d1250aa7f1 100644 --- a/mmcv/runner/dist_utils.py +++ b/mmcv/runner/dist_utils.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import functools import os import subprocess diff --git a/mmcv/runner/epoch_based_runner.py b/mmcv/runner/epoch_based_runner.py index baf072f18f..2dd29357a0 100644 --- a/mmcv/runner/epoch_based_runner.py +++ b/mmcv/runner/epoch_based_runner.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp import platform import shutil diff --git a/mmcv/runner/fp16_utils.py b/mmcv/runner/fp16_utils.py index 08c9fb4076..d7be1c52e9 100644 --- a/mmcv/runner/fp16_utils.py +++ b/mmcv/runner/fp16_utils.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import functools import warnings from collections import abc diff --git a/mmcv/runner/hooks/__init__.py b/mmcv/runner/hooks/__init__.py index 4f108ad4c3..cbc4810a9d 100644 --- a/mmcv/runner/hooks/__init__.py +++ b/mmcv/runner/hooks/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .checkpoint import CheckpointHook from .closure import ClosureHook from .ema import EMAHook diff --git a/mmcv/runner/hooks/checkpoint.py b/mmcv/runner/hooks/checkpoint.py index 8f4aab2569..d99dcb3e62 100644 --- a/mmcv/runner/hooks/checkpoint.py +++ b/mmcv/runner/hooks/checkpoint.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os from ..dist_utils import allreduce_params, master_only diff --git a/mmcv/runner/hooks/closure.py b/mmcv/runner/hooks/closure.py index ea531f632b..b955f81f42 100644 --- a/mmcv/runner/hooks/closure.py +++ b/mmcv/runner/hooks/closure.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .hook import HOOKS, Hook diff --git a/mmcv/runner/hooks/ema.py b/mmcv/runner/hooks/ema.py index d5fe738dc3..6a387ed0c2 100644 --- a/mmcv/runner/hooks/ema.py +++ b/mmcv/runner/hooks/ema.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from ...parallel import is_module_wrapper from ..hooks.hook import HOOKS, Hook diff --git a/mmcv/runner/hooks/evaluation.py b/mmcv/runner/hooks/evaluation.py index 9bbea569d8..aa95541b19 100644 --- a/mmcv/runner/hooks/evaluation.py +++ b/mmcv/runner/hooks/evaluation.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os import os.path as osp import warnings diff --git a/mmcv/runner/hooks/hook.py b/mmcv/runner/hooks/hook.py index 419f638c5e..f2d1c9865b 100644 --- a/mmcv/runner/hooks/hook.py +++ b/mmcv/runner/hooks/hook.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from mmcv.utils import Registry, is_method_overridden HOOKS = Registry('hook') diff --git a/mmcv/runner/hooks/iter_timer.py b/mmcv/runner/hooks/iter_timer.py index fd0ed91d51..cfd5002fe8 100644 --- a/mmcv/runner/hooks/iter_timer.py +++ b/mmcv/runner/hooks/iter_timer.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import time from .hook import HOOKS, Hook diff --git a/mmcv/runner/hooks/logger/__init__.py b/mmcv/runner/hooks/logger/__init__.py index 46beda07f7..a0b6b34564 100644 --- a/mmcv/runner/hooks/logger/__init__.py +++ b/mmcv/runner/hooks/logger/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .base import LoggerHook from .dvclive import DvcliveLoggerHook from .mlflow import MlflowLoggerHook diff --git a/mmcv/runner/hooks/logger/base.py b/mmcv/runner/hooks/logger/base.py index 776e7b0d3f..f845256729 100644 --- a/mmcv/runner/hooks/logger/base.py +++ b/mmcv/runner/hooks/logger/base.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import numbers from abc import ABCMeta, abstractmethod diff --git a/mmcv/runner/hooks/logger/dvclive.py b/mmcv/runner/hooks/logger/dvclive.py index 336a652adc..687cdc58c0 100644 --- a/mmcv/runner/hooks/logger/dvclive.py +++ b/mmcv/runner/hooks/logger/dvclive.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from ...dist_utils import master_only from ..hook import HOOKS from .base import LoggerHook diff --git a/mmcv/runner/hooks/logger/mlflow.py b/mmcv/runner/hooks/logger/mlflow.py index 4e839340ef..aaec4da591 100644 --- a/mmcv/runner/hooks/logger/mlflow.py +++ b/mmcv/runner/hooks/logger/mlflow.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from ...dist_utils import master_only from ..hook import HOOKS from .base import LoggerHook diff --git a/mmcv/runner/hooks/logger/neptune.py b/mmcv/runner/hooks/logger/neptune.py index 2e695863b1..7a38772b0c 100644 --- a/mmcv/runner/hooks/logger/neptune.py +++ b/mmcv/runner/hooks/logger/neptune.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from ...dist_utils import master_only from ..hook import HOOKS from .base import LoggerHook diff --git a/mmcv/runner/hooks/logger/pavi.py b/mmcv/runner/hooks/logger/pavi.py index 264d74abcd..f11a611e6f 100644 --- a/mmcv/runner/hooks/logger/pavi.py +++ b/mmcv/runner/hooks/logger/pavi.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import json import os import os.path as osp diff --git a/mmcv/runner/hooks/logger/tensorboard.py b/mmcv/runner/hooks/logger/tensorboard.py index b70bd5c743..a8d50366f8 100644 --- a/mmcv/runner/hooks/logger/tensorboard.py +++ b/mmcv/runner/hooks/logger/tensorboard.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp from mmcv.utils import TORCH_VERSION, digit_version diff --git a/mmcv/runner/hooks/logger/text.py b/mmcv/runner/hooks/logger/text.py index 5b0c7f22f0..40a619e5ef 100644 --- a/mmcv/runner/hooks/logger/text.py +++ b/mmcv/runner/hooks/logger/text.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import datetime import os.path as osp from collections import OrderedDict diff --git a/mmcv/runner/hooks/logger/wandb.py b/mmcv/runner/hooks/logger/wandb.py index 81220e644c..9f6808462e 100644 --- a/mmcv/runner/hooks/logger/wandb.py +++ b/mmcv/runner/hooks/logger/wandb.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from ...dist_utils import master_only from ..hook import HOOKS from .base import LoggerHook diff --git a/mmcv/runner/hooks/lr_updater.py b/mmcv/runner/hooks/lr_updater.py index ca3d73f481..e5a124157c 100644 --- a/mmcv/runner/hooks/lr_updater.py +++ b/mmcv/runner/hooks/lr_updater.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import numbers from math import cos, pi diff --git a/mmcv/runner/hooks/memory.py b/mmcv/runner/hooks/memory.py index 966ee07d0e..70cf9a838f 100644 --- a/mmcv/runner/hooks/memory.py +++ b/mmcv/runner/hooks/memory.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import torch from .hook import HOOKS, Hook diff --git a/mmcv/runner/hooks/momentum_updater.py b/mmcv/runner/hooks/momentum_updater.py index da00877ae8..13d0e2fab4 100644 --- a/mmcv/runner/hooks/momentum_updater.py +++ b/mmcv/runner/hooks/momentum_updater.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import mmcv from .hook import HOOKS, Hook from .lr_updater import annealing_cos, annealing_linear, format_param diff --git a/mmcv/runner/hooks/optimizer.py b/mmcv/runner/hooks/optimizer.py index 3a8c64cf62..9810e43d66 100644 --- a/mmcv/runner/hooks/optimizer.py +++ b/mmcv/runner/hooks/optimizer.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import copy from collections import defaultdict from itertools import chain diff --git a/mmcv/runner/hooks/profiler.py b/mmcv/runner/hooks/profiler.py index 6b60915a2f..b70236997e 100644 --- a/mmcv/runner/hooks/profiler.py +++ b/mmcv/runner/hooks/profiler.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import warnings from typing import Callable, List, Optional, Union diff --git a/mmcv/runner/hooks/sampler_seed.py b/mmcv/runner/hooks/sampler_seed.py index 2fb3292ed7..ee0dc6bdd8 100644 --- a/mmcv/runner/hooks/sampler_seed.py +++ b/mmcv/runner/hooks/sampler_seed.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .hook import HOOKS, Hook diff --git a/mmcv/runner/hooks/sync_buffer.py b/mmcv/runner/hooks/sync_buffer.py index f58271570f..6376b7ff89 100644 --- a/mmcv/runner/hooks/sync_buffer.py +++ b/mmcv/runner/hooks/sync_buffer.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from ..dist_utils import allreduce_params from .hook import HOOKS, Hook diff --git a/mmcv/runner/iter_based_runner.py b/mmcv/runner/iter_based_runner.py index 5c4262b142..cb1db053ac 100644 --- a/mmcv/runner/iter_based_runner.py +++ b/mmcv/runner/iter_based_runner.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp import platform import shutil diff --git a/mmcv/runner/log_buffer.py b/mmcv/runner/log_buffer.py index ed4652f6d6..d949e2941c 100644 --- a/mmcv/runner/log_buffer.py +++ b/mmcv/runner/log_buffer.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from collections import OrderedDict import numpy as np diff --git a/mmcv/runner/optimizer/__init__.py b/mmcv/runner/optimizer/__init__.py index faa0585a93..53c34d0470 100644 --- a/mmcv/runner/optimizer/__init__.py +++ b/mmcv/runner/optimizer/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from .builder import (OPTIMIZER_BUILDERS, OPTIMIZERS, build_optimizer, build_optimizer_constructor) from .default_constructor import DefaultOptimizerConstructor diff --git a/mmcv/runner/optimizer/builder.py b/mmcv/runner/optimizer/builder.py index e97082a727..f9234eed8f 100644 --- a/mmcv/runner/optimizer/builder.py +++ b/mmcv/runner/optimizer/builder.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import copy import inspect diff --git a/mmcv/runner/optimizer/default_constructor.py b/mmcv/runner/optimizer/default_constructor.py index 6a455ff0a0..0582464846 100644 --- a/mmcv/runner/optimizer/default_constructor.py +++ b/mmcv/runner/optimizer/default_constructor.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings import torch diff --git a/mmcv/runner/priority.py b/mmcv/runner/priority.py index 4a9383aa4e..64cc4e3a05 100644 --- a/mmcv/runner/priority.py +++ b/mmcv/runner/priority.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from enum import Enum diff --git a/mmcv/runner/utils.py b/mmcv/runner/utils.py index 168305f0cd..51e0301bb5 100644 --- a/mmcv/runner/utils.py +++ b/mmcv/runner/utils.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os import random import sys diff --git a/mmcv/tensorrt/__init__.py b/mmcv/tensorrt/__init__.py index 0a245c058c..eb8cd4021e 100644 --- a/mmcv/tensorrt/__init__.py +++ b/mmcv/tensorrt/__init__.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. # flake8: noqa from .init_plugins import is_tensorrt_plugin_loaded, load_tensorrt_plugin from .preprocess import preprocess_onnx diff --git a/mmcv/tensorrt/init_plugins.py b/mmcv/tensorrt/init_plugins.py index 0724970b58..d9dbd0204b 100644 --- a/mmcv/tensorrt/init_plugins.py +++ b/mmcv/tensorrt/init_plugins.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import ctypes import glob import os diff --git a/mmcv/tensorrt/tensorrt_utils.py b/mmcv/tensorrt/tensorrt_utils.py index a67aa6e32d..ad193dec80 100644 --- a/mmcv/tensorrt/tensorrt_utils.py +++ b/mmcv/tensorrt/tensorrt_utils.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import warnings import onnx diff --git a/mmcv/utils/__init__.py b/mmcv/utils/__init__.py index 72eaf8cde8..6e5ca6c119 100644 --- a/mmcv/utils/__init__.py +++ b/mmcv/utils/__init__.py @@ -1,5 +1,5 @@ # flake8: noqa -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .config import Config, ConfigDict, DictAction from .misc import (check_prerequisites, concat_list, deprecated_api_warning, import_modules_from_strings, is_list_of, diff --git a/mmcv/utils/config.py b/mmcv/utils/config.py index 56c7d9bd93..dbb105384e 100644 --- a/mmcv/utils/config.py +++ b/mmcv/utils/config.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import ast import copy import os diff --git a/mmcv/utils/env.py b/mmcv/utils/env.py index edc5444282..e3ef5e8736 100644 --- a/mmcv/utils/env.py +++ b/mmcv/utils/env.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. """This file holding some environment constant for sharing by other files.""" import os.path as osp diff --git a/mmcv/utils/ext_loader.py b/mmcv/utils/ext_loader.py index 2a3c223838..06c130c6f4 100644 --- a/mmcv/utils/ext_loader.py +++ b/mmcv/utils/ext_loader.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import importlib import os import pkgutil diff --git a/mmcv/utils/logging.py b/mmcv/utils/logging.py index e7ede61a46..4aa0e04bb9 100644 --- a/mmcv/utils/logging.py +++ b/mmcv/utils/logging.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import logging import torch.distributed as dist diff --git a/mmcv/utils/misc.py b/mmcv/utils/misc.py index dee1fa03c9..b9fddfb2b5 100644 --- a/mmcv/utils/misc.py +++ b/mmcv/utils/misc.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import collections.abc import functools import itertools diff --git a/mmcv/utils/parrots_jit.py b/mmcv/utils/parrots_jit.py index 440d4bcbd2..61873f6dbb 100644 --- a/mmcv/utils/parrots_jit.py +++ b/mmcv/utils/parrots_jit.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os from .parrots_wrapper import TORCH_VERSION diff --git a/mmcv/utils/parrots_wrapper.py b/mmcv/utils/parrots_wrapper.py index c6a28f5606..6a23f530ae 100644 --- a/mmcv/utils/parrots_wrapper.py +++ b/mmcv/utils/parrots_wrapper.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. from functools import partial import torch diff --git a/mmcv/utils/path.py b/mmcv/utils/path.py index 3a4d038445..72a2da4bdc 100644 --- a/mmcv/utils/path.py +++ b/mmcv/utils/path.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os import os.path as osp from pathlib import Path diff --git a/mmcv/utils/progressbar.py b/mmcv/utils/progressbar.py index f2044096c2..0062f670dd 100644 --- a/mmcv/utils/progressbar.py +++ b/mmcv/utils/progressbar.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import sys from collections.abc import Iterable from multiprocessing import Pool diff --git a/mmcv/utils/registry.py b/mmcv/utils/registry.py index 2d4bf103ba..baf889e1b4 100644 --- a/mmcv/utils/registry.py +++ b/mmcv/utils/registry.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import inspect import warnings from functools import partial diff --git a/mmcv/utils/timer.py b/mmcv/utils/timer.py index 7c7f50c18f..66d4a78a85 100644 --- a/mmcv/utils/timer.py +++ b/mmcv/utils/timer.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from time import time diff --git a/mmcv/utils/version_utils.py b/mmcv/utils/version_utils.py index 89730146d4..55a88a65ea 100644 --- a/mmcv/utils/version_utils.py +++ b/mmcv/utils/version_utils.py @@ -1,3 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. import os import subprocess import warnings diff --git a/mmcv/version.py b/mmcv/version.py index c8342f1ed3..761628af0c 100644 --- a/mmcv/version.py +++ b/mmcv/version.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from pkg_resources import parse_version diff --git a/mmcv/video/__init__.py b/mmcv/video/__init__.py index 28f2d7e937..7b06891582 100644 --- a/mmcv/video/__init__.py +++ b/mmcv/video/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .io import Cache, VideoReader, frames2video from .optflow import (dequantize_flow, flow_warp, flowread, flowwrite, quantize_flow) diff --git a/mmcv/video/io.py b/mmcv/video/io.py index 1ce34b73a4..30971a15a5 100644 --- a/mmcv/video/io.py +++ b/mmcv/video/io.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp from collections import OrderedDict diff --git a/mmcv/video/optflow.py b/mmcv/video/optflow.py index 536417a825..aaaa77251e 100644 --- a/mmcv/video/optflow.py +++ b/mmcv/video/optflow.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import warnings import numpy as np diff --git a/mmcv/video/processing.py b/mmcv/video/processing.py index 8331572ec1..28779049c5 100644 --- a/mmcv/video/processing.py +++ b/mmcv/video/processing.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os import os.path as osp import subprocess diff --git a/mmcv/visualization/__init__.py b/mmcv/visualization/__init__.py index 38b857e111..835df136bd 100644 --- a/mmcv/visualization/__init__.py +++ b/mmcv/visualization/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from .color import Color, color_val from .image import imshow, imshow_bboxes, imshow_det_bboxes from .optflow import flow2rgb, flowshow, make_color_wheel diff --git a/mmcv/visualization/color.py b/mmcv/visualization/color.py index 44f465e021..e00355a515 100644 --- a/mmcv/visualization/color.py +++ b/mmcv/visualization/color.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from enum import Enum import numpy as np diff --git a/mmcv/visualization/image.py b/mmcv/visualization/image.py index 9621d7f47b..cacfb5326e 100644 --- a/mmcv/visualization/image.py +++ b/mmcv/visualization/image.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import cv2 import numpy as np diff --git a/mmcv/visualization/optflow.py b/mmcv/visualization/optflow.py index f8792cb6fb..ee9e2c1ccf 100644 --- a/mmcv/visualization/optflow.py +++ b/mmcv/visualization/optflow.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from __future__ import division import numpy as np diff --git a/tests/test_arraymisc.py b/tests/test_arraymisc.py index 85dae15f42..8e24b8a524 100644 --- a/tests/test_arraymisc.py +++ b/tests/test_arraymisc.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. from __future__ import division import numpy as np diff --git a/tests/test_cnn/test_weight_init.py b/tests/test_cnn/test_weight_init.py index 82ce6423bf..7c2a4b796c 100644 --- a/tests/test_cnn/test_weight_init.py +++ b/tests/test_cnn/test_weight_init.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import random from tempfile import TemporaryDirectory diff --git a/tests/test_fileio.py b/tests/test_fileio.py index 0e63f15062..a9d70f515a 100644 --- a/tests/test_fileio.py +++ b/tests/test_fileio.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os import os.path as osp import tempfile diff --git a/tests/test_image/test_colorspace.py b/tests/test_image/test_colorspace.py index 4dd321098e..d53e4e44da 100644 --- a/tests/test_image/test_colorspace.py +++ b/tests/test_image/test_colorspace.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import cv2 import numpy as np import pytest diff --git a/tests/test_image/test_geometric.py b/tests/test_image/test_geometric.py index 1048ea5a4d..b0623159ce 100644 --- a/tests/test_image/test_geometric.py +++ b/tests/test_image/test_geometric.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp import cv2 diff --git a/tests/test_image/test_image_misc.py b/tests/test_image/test_image_misc.py index 4c98c4d7c0..7573b16118 100644 --- a/tests/test_image/test_image_misc.py +++ b/tests/test_image/test_image_misc.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import numpy as np import pytest from numpy.testing import assert_array_equal diff --git a/tests/test_image/test_io.py b/tests/test_image/test_io.py index 869a9a7add..35bdc9d1c3 100644 --- a/tests/test_image/test_io.py +++ b/tests/test_image/test_io.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os import os.path as osp import tempfile diff --git a/tests/test_image/test_photometric.py b/tests/test_image/test_photometric.py index cff805688e..8552bd19bd 100644 --- a/tests/test_image/test_photometric.py +++ b/tests/test_image/test_photometric.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp import cv2 diff --git a/tests/test_load_model_zoo.py b/tests/test_load_model_zoo.py index 400864700d..ada0bc78f6 100644 --- a/tests/test_load_model_zoo.py +++ b/tests/test_load_model_zoo.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os import os.path as osp from unittest.mock import patch diff --git a/tests/test_runner/test_runner.py b/tests/test_runner/test_runner.py index abe5bb037a..5f0312b6bf 100644 --- a/tests/test_runner/test_runner.py +++ b/tests/test_runner/test_runner.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import logging import os import os.path as osp diff --git a/tests/test_utils/test_config.py b/tests/test_utils/test_config.py index 44a67ba500..f22dcf3a4a 100644 --- a/tests/test_utils/test_config.py +++ b/tests/test_utils/test_config.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import argparse import json import os diff --git a/tests/test_utils/test_misc.py b/tests/test_utils/test_misc.py index 7b056554af..67f80044b8 100644 --- a/tests/test_utils/test_misc.py +++ b/tests/test_utils/test_misc.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import pytest import mmcv diff --git a/tests/test_utils/test_path.py b/tests/test_utils/test_path.py index aa6537eafa..4b15e2ac71 100644 --- a/tests/test_utils/test_path.py +++ b/tests/test_utils/test_path.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os.path as osp from pathlib import Path diff --git a/tests/test_utils/test_progressbar.py b/tests/test_utils/test_progressbar.py index 3e594da94d..730f45697d 100644 --- a/tests/test_utils/test_progressbar.py +++ b/tests/test_utils/test_progressbar.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os import time diff --git a/tests/test_utils/test_timer.py b/tests/test_utils/test_timer.py index 8d45c440b6..983f64f58e 100644 --- a/tests/test_utils/test_timer.py +++ b/tests/test_utils/test_timer.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import time import pytest diff --git a/tests/test_video/test_optflow.py b/tests/test_video/test_optflow.py index 2eb3897d81..a3094ae033 100644 --- a/tests/test_video/test_optflow.py +++ b/tests/test_video/test_optflow.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os import os.path as osp import tempfile diff --git a/tests/test_video/test_processing.py b/tests/test_video/test_processing.py index b430c0815f..e3dc5ff2f1 100644 --- a/tests/test_video/test_processing.py +++ b/tests/test_video/test_processing.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os import os.path as osp import tempfile diff --git a/tests/test_video/test_reader.py b/tests/test_video/test_reader.py index 0a21a38e13..344fafb5b0 100644 --- a/tests/test_video/test_reader.py +++ b/tests/test_video/test_reader.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import os import os.path as osp import shutil diff --git a/tests/test_visualization.py b/tests/test_visualization.py index e89f6f6bca..157bd9be70 100644 --- a/tests/test_visualization.py +++ b/tests/test_visualization.py @@ -1,4 +1,4 @@ -# Copyright (c) Open-MMLab. All rights reserved. +# Copyright (c) OpenMMLab. All rights reserved. import numpy as np import pytest From 94a677de3f5eb8cf0183a50f0d0dbd08ecbc2d18 Mon Sep 17 00:00:00 2001 From: Miao Zheng <76149310+MeowZheng@users.noreply.github.com> Date: Mon, 9 Aug 2021 22:29:21 +0800 Subject: [PATCH 3/3] [Docs] Add PR document (#1209) * [Docs] Add PR document * format * idx modify * revise according to comments * add blank line * grammar * insert blank line after title * revise according to comments * revise according to comments * typo * resize image3 * lint * del print * fix lint * del unused Co-authored-by: zhouzaida --- docs/_static/community/1.png | Bin 0 -> 84328 bytes docs/_static/community/2.png | Bin 0 -> 66595 bytes docs/_static/community/3.png | Bin 0 -> 182941 bytes docs/community/pr.md | 92 +++++++++++++++++++++++++++++++++++ docs_zh_CN/community/pr.md | 90 ++++++++++++++++++++++++++++++++++ 5 files changed, 182 insertions(+) create mode 100644 docs/_static/community/1.png create mode 100644 docs/_static/community/2.png create mode 100644 docs/_static/community/3.png create mode 100644 docs/community/pr.md create mode 100644 docs_zh_CN/community/pr.md diff --git a/docs/_static/community/1.png b/docs/_static/community/1.png new file mode 100644 index 0000000000000000000000000000000000000000..1837fbc8ca1dd46fc169d3c16fd2aef73645af92 GIT binary patch literal 84328 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

( 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 UYHVGJ!va4UNkxf5aYNt#12M`t82|tP literal 0 HcmV?d00001 diff --git a/docs/community/pr.md b/docs/community/pr.md new file mode 100644 index 0000000000..ac534eca7a --- /dev/null +++ b/docs/community/pr.md @@ -0,0 +1,92 @@ +## Pull Request (PR) + +### What is PR + +`PR` is the abbreviation of `Pull Request`. Here's the definition of `PR` in the [official document](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) of Github. + +> Pull requests let you tell others about changes you've pushed to a branch in a repository on GitHub. Once a pull request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits before your changes are merged into the base branch. + +## Basic Workflow + +1. Get the most recent codebase +2. Checkout a new branch from the master branch +3. Commit your changes +4. Push your changes and create a PR +5. Discuss and review your code +6. Merge your branch to the master branch + +### Procedures in detail + +1. Get the most recent codebase + + When you work on your first PR + - Fork the OpenMMLab repository: click the **fork** button at the top right corner of Github page + ![avatar](../_static/community/1.png) + + - Clone forked repository to local + ```bash + git clone git@github.com:XXX/mmcv.git + ``` + + - Add source repository to upstream + ```bash + git remote add upstream git@github.com:open-mmlab/mmcv + ``` + + + After your first PR + - Checkout master branch of the local repository and pull the latest master branch of the source repository + ```bash + git checkout master + git pull upstream master + ``` + +2. Checkout a new branch from the master branch + ```bash + git checkout -b branchname + ``` + + NOTE: To make commit history clear, we strongly recommend you checkout the master branch before create a new branch. + +3. Commit your changes + ```bash + # coding + git add [files] + git commit -m 'messages' + ``` + +4. Push your changes to the forked repository and create a PR + + Push the branch to your forked remote repository + ```bash + git push origin branchname + ``` + + + Create a PR + ![avatar](../_static/community/2.png) + + + Revise PR message template to describe your motivation and modifications made in this PR. You can also link the related issue to the PR manually in the PR message (For more information, checkout the [official guidance](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)). + +5. Discuss and review your code + + After creating a pull request, you can ask a specific person to review the changes you've proposed + ![avatar](../_static/community/3.png) + + + Modify your codes according to reviewers' suggestions and then push your changes + +6. Merge your branch to the master branch and delete the branch + ```bash + git branch -d branchname # delete local branch + git push origin --delete branchname # delete remote branch + ``` + +### PR Specs + +1. Use [pre-commit](https://pre-commit.com) hook to avoid issues of code style +2. One short-time branch should be matched with only one PR +3. Accomplish a detailed change in one PR. Avoid large PR + >- Bad: Support Faster R-CNN + >- Acceptable: Add a box head to Faster R-CNN + >- Good: Add a parameter to box head to support custom conv-layer number +4. Provide clear and significant commit message +5. Provide clear and meaningful PR description + >- Task name should be clarified in title. The general format is: [Prefix] Short description of the PR (Suffix) + >- Prefix: add new feature [Feature], fix bug [Fix], related to documents [Docs], in developing [WIP] (which will not be reviewed temporarily) + >- Introduce main changes, results and influences on other modules in short description + >- Associate related issues and pull requests with a milestone diff --git a/docs_zh_CN/community/pr.md b/docs_zh_CN/community/pr.md new file mode 100644 index 0000000000..427a527ba0 --- /dev/null +++ b/docs_zh_CN/community/pr.md @@ -0,0 +1,90 @@ +## 拉取请求 + +### 什么是拉取请求? + +`拉取请求` (Pull Request), [GitHub 官方文档](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)定义如下。 + +>拉取请求是一种通知机制。你修改了他人的代码,将你的修改通知原来作者,希望他合并你的修改。 + +### 基本的工作流: + +1. 获取最新的代码库 +2. 从主分支创建最新的分支进行开发 +3. 提交修改 +4. 推送你的修改并创建一个`拉取请求` +5. 讨论、审核代码 +6. 将开发分支合并到主分支 + +### 具体步骤 + +1. 获取最新的代码库 + + 当你第一次提 PR 时 + - 复刻 OpenMMLab 原代码库,点击 GitHub 页面右上角的 **Fork** 按钮即可 + ![avatar](../_static/community/1.png) + + - 克隆复刻的代码库到本地 + ```bash + git clone git@github.com:XXX/mmcv.git + ``` + + - 添加原代码库为上游代码库 + ```bash + git remote add upstream git@github.com:open-mmlab/mmcv + ``` + + 从第二个 PR 起 + - 检出本地代码库的主分支,然后从最新的原代码库的主分支拉取更新 + ```bash + git checkout master + git pull upstream master + ``` + +2. 从主分支创建一个新的开发分支 + ```bash + git checkout -b branchname + ``` + 注意:为了保证提交历史清晰可读,我们强烈推荐您先检出主分支 (master),再创建新的分支。 + +3. 提交你的修改 + ```bash + # coding + git add [files] + git commit -m 'messages' + ``` + +4. 推送你的修改到复刻的代码库,并创建一个`拉取请求` + + 推送当前分支到远端复刻的代码库 + ```bash + git push origin branchname + ``` + + + 创建一个`拉取请求` + ![avatar](../_static/community/2.png) + + + 修改`拉取请求`信息模板,描述修改原因和修改内容。还可以在 PR 描述中,手动关联到相关的`议题` (issue),(更多细节,请参考[官方文档](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue))。 + +5. 讨论并评审你的代码 + + 创建`拉取请求`时,可以关联给相关人员进行评审 + ![avatar](../_static/community/3.png) + + + 根据评审人员的意见修改代码,并推送修改 + +6. `拉取请求`合并之后删除该分支 +```bash +git branch -d branchname # delete local branch +git push origin --delete branchname # delete remote branch +``` + +### PR 规范 + +1. 使用 [pre-commit hook](https://pre-commit.com),尽量减少代码风格相关问题 +2. 一个PR对应一个短期分支 +3. 粒度要细,一个PR只做一件事情,避免超大的PR + >- Bad:实现Faster R-CNN + >- Acceptable:给 Faster R-CNN 添加一个 box head + >- Good:给 box head 增加一个参数来支持自定义的 conv 层数 +4. 每次 Commit 时需要提供清晰且有意义 commit 信息 +5. 提供清晰且有意义的`拉取请求`描述 + >- 标题写明白任务名称,一般格式:[Prefix] Short description of the pull request (Suffix) + >- prefix: 新增功能 [Feature], 修 bug [Fix], 文档相关 [Docs], 开发中 [WIP] (暂时不会被review) + >- 描述里介绍`拉取请求`的主要修改内容,结果,以及对其他部分的影响, 参考`拉取请求`模板 + >- 关联相关的`议题` (issue) 和其他`拉取请求`

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�_@&f14ESdtCW*hHEW4p1(a(ZIVLkH=BH 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⁣lLS#wx%9J`hs9`|hK& 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 literal 0 HcmV?d00001 diff --git a/docs/_static/community/2.png b/docs/_static/community/2.png new file mode 100644 index 0000000000000000000000000000000000000000..76e21def858b2f9392a90999d741cb653e766ae5 GIT binary patch literal 66595 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