From 43e60ad5a62be12d86e23432ad5ebc05ec77f342 Mon Sep 17 00:00:00 2001 From: Ma Zerun Date: Fri, 29 Jul 2022 14:18:13 +0800 Subject: [PATCH] [Improve] Rename `mmcls.data` to `mmcls.structures`. (#941) --- mmcls/datasets/pipelines/formatting.py | 2 +- mmcls/engine/hooks/visualization_hook.py | 2 +- mmcls/evaluation/metrics/multi_label.py | 4 ++-- mmcls/evaluation/metrics/single_label.py | 4 ++-- mmcls/models/classifiers/image.py | 4 ++-- mmcls/models/heads/cls_head.py | 2 +- mmcls/models/heads/conformer_head.py | 2 +- mmcls/models/heads/multi_label_cls_head.py | 2 +- mmcls/models/utils/batch_augments/mixup.py | 2 +- mmcls/{data => structures}/__init__.py | 0 mmcls/{data => structures}/cls_data_sample.py | 2 +- mmcls/utils/setup_env.py | 2 +- mmcls/visualization/cls_visualizer.py | 4 ++-- tests/test_datasets/test_pipelines/test_formatting.py | 2 +- tests/test_engine/test_hooks/test_visualization_hook.py | 2 +- tests/test_evaluation/test_metrics/test_multi_label.py | 2 +- tests/test_evaluation/test_metrics/test_single_label.py | 2 +- tests/test_models/test_classifiers.py | 2 +- tests/test_models/test_heads.py | 2 +- tests/test_models/test_utils/test_batch_augments.py | 2 +- tests/test_models/test_utils/test_data_preprocessor.py | 2 +- .../test_datasample.py | 2 +- tests/test_visualizations/test_visualizer.py | 2 +- 23 files changed, 26 insertions(+), 26 deletions(-) rename mmcls/{data => structures}/__init__.py (100%) rename mmcls/{data => structures}/cls_data_sample.py (99%) rename tests/{test_data/test_data_structures => test_structures}/test_datasample.py (99%) diff --git a/mmcls/datasets/pipelines/formatting.py b/mmcls/datasets/pipelines/formatting.py index 9bb183f5..a2a0fe7e 100644 --- a/mmcls/datasets/pipelines/formatting.py +++ b/mmcls/datasets/pipelines/formatting.py @@ -9,8 +9,8 @@ from mmcv.parallel import DataContainer as DC from mmcv.transforms.base import BaseTransform from PIL import Image -from mmcls.data import ClsDataSample from mmcls.registry import TRANSFORMS +from mmcls.structures import ClsDataSample def to_tensor(data): diff --git a/mmcls/engine/hooks/visualization_hook.py b/mmcls/engine/hooks/visualization_hook.py index 7eef014a..f820de99 100644 --- a/mmcls/engine/hooks/visualization_hook.py +++ b/mmcls/engine/hooks/visualization_hook.py @@ -8,8 +8,8 @@ from mmengine.hooks import Hook from mmengine.runner import EpochBasedTrainLoop, Runner from mmengine.visualization import Visualizer -from mmcls.data import ClsDataSample from mmcls.registry import HOOKS +from mmcls.structures import ClsDataSample @HOOKS.register_module() diff --git a/mmcls/evaluation/metrics/multi_label.py b/mmcls/evaluation/metrics/multi_label.py index 60cd0b5e..7d3bfa20 100644 --- a/mmcls/evaluation/metrics/multi_label.py +++ b/mmcls/evaluation/metrics/multi_label.py @@ -93,7 +93,7 @@ class MultiLabelMetric(BaseMetric): (tensor(62.5000), tensor(31.2500), tensor(39.1667), tensor(8)) >>> >>> # ------------------- Use with Evalutor ------------------- - >>> from mmcls.data import ClsDataSample + >>> from mmcls.structures import ClsDataSample >>> from mmengine.evaluator import Evaluator >>> # The `data_batch` won't be used in this case, just use a fake. >>> data_batch = [ @@ -457,7 +457,7 @@ class AveragePrecision(BaseMetric): >>> AveragePrecision.calculate(y_pred, y_true) tensor(70.833) >>> # ------------------- Use with Evalutor ------------------- - >>> from mmcls.data import ClsDataSample + >>> from mmcls.structures import ClsDataSample >>> from mmengine.evaluator import Evaluator >>> # The `data_batch` won't be used in this case, just use a fake. >>> data_batch = [ diff --git a/mmcls/evaluation/metrics/single_label.py b/mmcls/evaluation/metrics/single_label.py index 3dc48fe6..32bfe2e2 100644 --- a/mmcls/evaluation/metrics/single_label.py +++ b/mmcls/evaluation/metrics/single_label.py @@ -86,7 +86,7 @@ class Accuracy(BaseMetric): [[tensor([9.9000])], [tensor([51.5000])]] >>> >>> # ------------------- Use with Evalutor ------------------- - >>> from mmcls.data import ClsDataSample + >>> from mmcls.structures import ClsDataSample >>> from mmengine.evaluator import Evaluator >>> data_batch = [{ ... 'inputs': None, # In this example, the `inputs` is not used. @@ -335,7 +335,7 @@ class SingleLabelMetric(BaseMetric): tensor(1000))] >>> >>> # ------------------- Use with Evalutor ------------------- - >>> from mmcls.data import ClsDataSample + >>> from mmcls.structures import ClsDataSample >>> from mmengine.evaluator import Evaluator >>> data_batch = [{ ... 'inputs': None, # In this example, the `inputs` is not used. diff --git a/mmcls/models/classifiers/image.py b/mmcls/models/classifiers/image.py index d54bd663..a0161517 100644 --- a/mmcls/models/classifiers/image.py +++ b/mmcls/models/classifiers/image.py @@ -3,8 +3,8 @@ from typing import List, Optional import torch -from mmcls.data import ClsDataSample from mmcls.registry import MODELS +from mmcls.structures import ClsDataSample from .base import BaseClassifier @@ -100,7 +100,7 @@ class ImageClassifier(BaseClassifier): - If ``mode="tensor"``, return a tensor or a tuple of tensor. - If ``mode="predict"``, return a list of - :obj:`mmcls.data.ClsDataSample`. + :obj:`mmcls.structures.ClsDataSample`. - If ``mode="loss"``, return a dict of tensor. """ if mode == 'tensor': diff --git a/mmcls/models/heads/cls_head.py b/mmcls/models/heads/cls_head.py index 84382209..473ac6f5 100644 --- a/mmcls/models/heads/cls_head.py +++ b/mmcls/models/heads/cls_head.py @@ -4,9 +4,9 @@ from typing import List, Optional, Tuple, Union import torch import torch.nn.functional as F -from mmcls.data import ClsDataSample from mmcls.evaluation.metrics import Accuracy from mmcls.registry import MODELS +from mmcls.structures import ClsDataSample from .base_head import BaseHead diff --git a/mmcls/models/heads/conformer_head.py b/mmcls/models/heads/conformer_head.py index 18afe9ce..313854fa 100644 --- a/mmcls/models/heads/conformer_head.py +++ b/mmcls/models/heads/conformer_head.py @@ -4,9 +4,9 @@ from typing import List, Sequence, Tuple import torch import torch.nn as nn -from mmcls.data import ClsDataSample from mmcls.evaluation.metrics import Accuracy from mmcls.registry import MODELS +from mmcls.structures import ClsDataSample from .cls_head import ClsHead diff --git a/mmcls/models/heads/multi_label_cls_head.py b/mmcls/models/heads/multi_label_cls_head.py index edb94922..3419fddb 100644 --- a/mmcls/models/heads/multi_label_cls_head.py +++ b/mmcls/models/heads/multi_label_cls_head.py @@ -4,8 +4,8 @@ from typing import Dict, List, Optional, Tuple import torch from mmengine.data import LabelData -from mmcls.data import ClsDataSample from mmcls.registry import MODELS +from mmcls.structures import ClsDataSample from .base_head import BaseHead diff --git a/mmcls/models/utils/batch_augments/mixup.py b/mmcls/models/utils/batch_augments/mixup.py index da150a12..92ad7ae0 100644 --- a/mmcls/models/utils/batch_augments/mixup.py +++ b/mmcls/models/utils/batch_augments/mixup.py @@ -5,8 +5,8 @@ import numpy as np import torch from mmengine.data import LabelData -from mmcls.data import ClsDataSample from mmcls.registry import BATCH_AUGMENTS +from mmcls.structures import ClsDataSample @BATCH_AUGMENTS.register_module() diff --git a/mmcls/data/__init__.py b/mmcls/structures/__init__.py similarity index 100% rename from mmcls/data/__init__.py rename to mmcls/structures/__init__.py diff --git a/mmcls/data/cls_data_sample.py b/mmcls/structures/cls_data_sample.py similarity index 99% rename from mmcls/data/cls_data_sample.py rename to mmcls/structures/cls_data_sample.py index 8fa456f1..7a2961a4 100644 --- a/mmcls/data/cls_data_sample.py +++ b/mmcls/structures/cls_data_sample.py @@ -70,7 +70,7 @@ class ClsDataSample(BaseDataElement): Examples: >>> import torch - >>> from mmcls.data import ClsDataSample + >>> from mmcls.structures import ClsDataSample >>> >>> img_meta = dict(img_shape=(960, 720), num_classes=5) >>> data_sample = ClsDataSample(metainfo=img_meta) diff --git a/mmcls/utils/setup_env.py b/mmcls/utils/setup_env.py index 04b4496e..4096f0df 100644 --- a/mmcls/utils/setup_env.py +++ b/mmcls/utils/setup_env.py @@ -73,11 +73,11 @@ def register_all_modules(init_default_scope: bool = True) -> None: https://github.com/open-mmlab/mmengine/blob/main/docs/en/tutorials/registry.md Defaults to True. """ # noqa - import mmcls.data # noqa: F401,F403 import mmcls.datasets # noqa: F401,F403 import mmcls.engine # noqa: F401,F403 import mmcls.evaluation # noqa: F401,F403 import mmcls.models # noqa: F401,F403 + import mmcls.structures # noqa: F401,F403 import mmcls.visualization # noqa: F401,F403 if not init_default_scope: diff --git a/mmcls/visualization/cls_visualizer.py b/mmcls/visualization/cls_visualizer.py index 0a8b48a1..f7964c63 100644 --- a/mmcls/visualization/cls_visualizer.py +++ b/mmcls/visualization/cls_visualizer.py @@ -6,8 +6,8 @@ import numpy as np from mmengine import Visualizer from mmengine.dist import master_only -from mmcls.data import ClsDataSample from mmcls.registry import VISUALIZERS +from mmcls.structures import ClsDataSample def _get_adaptive_scale(img_shape: Tuple[int, int], @@ -57,7 +57,7 @@ class ClsVisualizer(Visualizer): >>> import mmcv >>> from pathlib import Path >>> from mmcls.visualization import ClsVisualizer - >>> from mmcls.data import ClsDataSample + >>> from mmcls.structures import ClsDataSample >>> # Example image >>> img = mmcv.imread("./demo/bird.JPEG", channel_order='rgb') >>> # Example annotation diff --git a/tests/test_datasets/test_pipelines/test_formatting.py b/tests/test_datasets/test_pipelines/test_formatting.py index 446cd9f6..55b82a12 100644 --- a/tests/test_datasets/test_pipelines/test_formatting.py +++ b/tests/test_datasets/test_pipelines/test_formatting.py @@ -7,8 +7,8 @@ import numpy as np import torch from mmengine.data import LabelData -from mmcls.data import ClsDataSample from mmcls.datasets.pipelines import PackClsInputs +from mmcls.structures import ClsDataSample class TestPackClsInputs(unittest.TestCase): diff --git a/tests/test_engine/test_hooks/test_visualization_hook.py b/tests/test_engine/test_hooks/test_visualization_hook.py index 04d4c95b..2f7c5015 100644 --- a/tests/test_engine/test_hooks/test_visualization_hook.py +++ b/tests/test_engine/test_hooks/test_visualization_hook.py @@ -7,9 +7,9 @@ from unittest.mock import ANY, MagicMock, patch import torch from mmengine.runner import EpochBasedTrainLoop, IterBasedTrainLoop -from mmcls.data import ClsDataSample from mmcls.engine import VisualizationHook from mmcls.registry import HOOKS +from mmcls.structures import ClsDataSample from mmcls.utils import register_all_modules from mmcls.visualization import ClsVisualizer diff --git a/tests/test_evaluation/test_metrics/test_multi_label.py b/tests/test_evaluation/test_metrics/test_multi_label.py index 4e6a062e..fa093f20 100644 --- a/tests/test_evaluation/test_metrics/test_multi_label.py +++ b/tests/test_evaluation/test_metrics/test_multi_label.py @@ -6,8 +6,8 @@ import sklearn.metrics import torch from mmengine.evaluator import Evaluator -from mmcls.data import ClsDataSample from mmcls.evaluation.metrics import AveragePrecision, MultiLabelMetric +from mmcls.structures import ClsDataSample from mmcls.utils import register_all_modules register_all_modules() diff --git a/tests/test_evaluation/test_metrics/test_single_label.py b/tests/test_evaluation/test_metrics/test_single_label.py index a1b65459..8602748e 100644 --- a/tests/test_evaluation/test_metrics/test_single_label.py +++ b/tests/test_evaluation/test_metrics/test_single_label.py @@ -5,9 +5,9 @@ from unittest import TestCase import numpy as np import torch -from mmcls.data import ClsDataSample from mmcls.evaluation.metrics import Accuracy, SingleLabelMetric from mmcls.registry import METRICS +from mmcls.structures import ClsDataSample class TestAccuracy(TestCase): diff --git a/tests/test_models/test_classifiers.py b/tests/test_models/test_classifiers.py index 074bb93c..7237f42b 100644 --- a/tests/test_models/test_classifiers.py +++ b/tests/test_models/test_classifiers.py @@ -5,9 +5,9 @@ from unittest.mock import MagicMock import torch from mmengine import ConfigDict -from mmcls.data import ClsDataSample from mmcls.models import ImageClassifier from mmcls.registry import MODELS +from mmcls.structures import ClsDataSample from mmcls.utils import register_all_modules register_all_modules() diff --git a/tests/test_models/test_heads.py b/tests/test_models/test_heads.py index 9f892d98..861a7497 100644 --- a/tests/test_models/test_heads.py +++ b/tests/test_models/test_heads.py @@ -7,8 +7,8 @@ import numpy as np import torch from mmengine import is_seq_of -from mmcls.data import ClsDataSample from mmcls.registry import MODELS +from mmcls.structures import ClsDataSample from mmcls.utils import register_all_modules register_all_modules() diff --git a/tests/test_models/test_utils/test_batch_augments.py b/tests/test_models/test_utils/test_batch_augments.py index 5972fa03..3890df49 100644 --- a/tests/test_models/test_utils/test_batch_augments.py +++ b/tests/test_models/test_utils/test_batch_augments.py @@ -5,9 +5,9 @@ from unittest.mock import MagicMock, patch import numpy as np import torch -from mmcls.data import ClsDataSample from mmcls.models import Mixup, RandomBatchAugment from mmcls.registry import BATCH_AUGMENTS +from mmcls.structures import ClsDataSample class TestRandomBatchAugment(TestCase): diff --git a/tests/test_models/test_utils/test_data_preprocessor.py b/tests/test_models/test_utils/test_data_preprocessor.py index 46ec4a55..b1bc4bde 100644 --- a/tests/test_models/test_utils/test_data_preprocessor.py +++ b/tests/test_models/test_utils/test_data_preprocessor.py @@ -3,9 +3,9 @@ from unittest import TestCase import torch -from mmcls.data import ClsDataSample from mmcls.models import ClsDataPreprocessor, RandomBatchAugment from mmcls.registry import MODELS +from mmcls.structures import ClsDataSample from mmcls.utils import register_all_modules register_all_modules() diff --git a/tests/test_data/test_data_structures/test_datasample.py b/tests/test_structures/test_datasample.py similarity index 99% rename from tests/test_data/test_data_structures/test_datasample.py rename to tests/test_structures/test_datasample.py index b7a35a94..d71bdf07 100644 --- a/tests/test_data/test_data_structures/test_datasample.py +++ b/tests/test_structures/test_datasample.py @@ -5,7 +5,7 @@ import numpy as np import torch from mmengine.data import LabelData -from mmcls.data import ClsDataSample +from mmcls.structures import ClsDataSample class TestClsDataSample(TestCase): diff --git a/tests/test_visualizations/test_visualizer.py b/tests/test_visualizations/test_visualizer.py index cbb46487..ab8059ba 100644 --- a/tests/test_visualizations/test_visualizer.py +++ b/tests/test_visualizations/test_visualizer.py @@ -7,7 +7,7 @@ from unittest.mock import patch import numpy as np import torch -from mmcls.data import ClsDataSample +from mmcls.structures import ClsDataSample from mmcls.visualization import ClsVisualizer