Unverified Commit 4f88f1a5 authored by VVsssssk's avatar VVsssssk Committed by GitHub
Browse files

[Fix] replace mmcv's function and modules imported with mmengine's and sync...

[Fix] replace mmcv's function and modules imported with mmengine's and sync the latest mmengine (#1765)

* replace mmcv to mmengine

* fix

* fix comments
parent 0e157c31
# Copyright (c) OpenMMLab. All rights reserved.
import torch
from mmcv.ops import Voxelization
from mmcv.runner import force_fp32
from torch.nn import functional as F
from mmdet3d.models.test_time_augs import merge_aug_bboxes_3d
......@@ -52,7 +51,6 @@ class SASSD(SingleStage3DDetector):
return x, point_misc
@torch.no_grad()
@force_fp32()
def voxelize(self, points):
"""Apply hard voxelization to points."""
voxels, coors, num_points = [], [], []
......
# Copyright (c) OpenMMLab. All rights reserved.
from typing import Dict, List, Optional, Union
from mmengine import InstanceData
from mmengine.structures import InstanceData
from torch import Tensor
from mmdet3d.registry import MODELS
......
# Copyright (c) OpenMMLab. All rights reserved.
import torch
from mmcv.runner import force_fp32
from mmengine.registry import MODELS
from torch import distributed as dist
from torch import nn as nn
......@@ -48,10 +47,6 @@ class NaiveSyncBatchNorm1d(nn.BatchNorm1d):
super().__init__(*args, **kwargs)
self.fp16_enabled = False
# customized normalization layer still needs this decorator
# to force the input to be fp32 and the output to be fp16
# TODO: make mmcv fp16 utils handle customized norm layers
@force_fp32(out_fp16=True)
def forward(self, input):
"""
Args:
......@@ -121,10 +116,6 @@ class NaiveSyncBatchNorm2d(nn.BatchNorm2d):
super().__init__(*args, **kwargs)
self.fp16_enabled = False
# customized normalization layer still needs this decorator
# to force the input to be fp32 and the output to be fp16
# TODO: make mmcv fp16 utils handle customized norm layers
@force_fp32(out_fp16=True)
def forward(self, input):
"""
Args:
......
......@@ -4,7 +4,7 @@ import copy
import torch
from mmcv.cnn import ConvModule, build_activation_layer, build_norm_layer
from mmcv.ops import assign_score_withk as assign_score_cuda
from mmengine.model.utils import constant_init
from mmengine.model import constant_init
from torch import nn as nn
from torch.nn import functional as F
......
# Copyright (c) OpenMMLab. All rights reserved.
from mmcv.utils import Registry
from mmengine.registry import Registry
SA_MODULES = Registry('point_sa_module')
......
......@@ -20,7 +20,7 @@ class GroupFree3DMHA(MultiheadAttention):
proj_drop (float, optional): A Dropout layer. Defaults to 0.0.
dropout_layer (obj:`ConfigDict`, optional): The dropout_layer used
when adding the shortcut.
init_cfg (obj:`mmcv.ConfigDict`, optional): The Config for
init_cfg (obj:`mmengine.ConfigDict`, optional): The Config for
initialization. Default: None.
batch_first (bool, optional): Key, Query and Value are shape of
(batch, n, embed_dim)
......
# Copyright (c) OpenMMLab. All rights reserved.
import torch
from mmcv import is_tuple_of
from mmcv.cnn import ConvModule
from mmengine import is_tuple_of
from torch import nn as nn
from mmdet3d.models.builder import build_loss
......
# Copyright (c) OpenMMLab. All rights reserved.
import torch
from mmcv.runner import auto_fp16
from torch import nn
from mmdet3d.registry import MODELS
......@@ -25,7 +24,6 @@ class PointPillarsScatter(nn.Module):
self.in_channels = in_channels
self.fp16_enabled = False
@auto_fp16(apply_to=('voxel_features', ))
def forward(self, voxel_features, coors, batch_size=None):
"""Foraward function to scatter features."""
# TODO: rewrite the function in a batch manner
......
# Copyright (c) OpenMMLab. All rights reserved.
import torch
from mmcv.ops import points_in_boxes_all, three_interpolate, three_nn
from mmcv.runner import auto_fp16
from torch import nn as nn
from mmdet3d.models.layers import SparseBasicBlock, make_sparse_convmodule
......@@ -104,7 +103,6 @@ class SparseEncoder(nn.Module):
indice_key='spconv_down2',
conv_type='SparseConv3d')
@auto_fp16(apply_to=('voxel_features', ))
def forward(self, voxel_features, coors, batch_size):
"""Forward of SparseEncoder.
......@@ -266,7 +264,6 @@ class SparseEncoderSASSD(SparseEncoder):
self.point_cls = nn.Linear(64, 1, bias=False)
self.point_reg = nn.Linear(64, 3, bias=False)
@auto_fp16(apply_to=('voxel_features', ))
def forward(self, voxel_features, coors, batch_size, test_mode=False):
"""Forward of SparseEncoder.
......
......@@ -3,8 +3,8 @@ from typing import Dict, List, Optional, Tuple
import torch
from mmcv.cnn import ConvModule
from mmengine import InstanceData
from mmengine.model import BaseModule
from mmengine.structures import InstanceData
from torch import Tensor
from torch import nn as nn
from torch.nn import functional as F
......
......@@ -4,8 +4,8 @@ from typing import List
import numpy as np
import torch
from mmcv.cnn import ConvModule
from mmengine.data import InstanceData
from mmengine.model.utils import normal_init
from mmengine.model import normal_init
from mmengine.structures import InstanceData
from torch import Tensor
from mmdet3d.models import make_sparse_convmodule
......
......@@ -3,8 +3,7 @@ import numpy as np
import torch
from mmcv.cnn import ConvModule
from mmcv.cnn.bricks import build_conv_layer
from mmengine.model import BaseModule
from mmengine.model.utils import normal_init
from mmengine.model import BaseModule, normal_init
from torch import nn as nn
from mmdet3d.models.layers import nms_bev, nms_normal_bev
......
# Copyright (c) OpenMMLab. All rights reserved.
from typing import Dict, List
from mmengine import InstanceData
from mmengine.structures import InstanceData
from torch import Tensor
from mmdet3d.registry import MODELS
......
......@@ -4,8 +4,8 @@ from typing import Dict, List, Optional
import torch
from mmcv.cnn import ConvModule
from mmcv.ops import furthest_point_sample
from mmengine import InstanceData
from mmengine.model import BaseModule
from mmengine.structures import InstanceData
from torch import nn as nn
from torch.nn import functional as F
......
# Copyright (c) OpenMMLab. All rights reserved.
from typing import Dict, List, Tuple
from mmcv import ConfigDict
from mmengine import ConfigDict
from torch import Tensor
from torch.nn import functional as F
......
# Copyright (c) OpenMMLab. All rights reserved.
import mmcv
import mmengine
import torch
from mmdet3d.registry import TASK_UTILS
......@@ -44,7 +44,7 @@ class Anchor3DRangeGenerator(object):
custom_values=(),
reshape_out=True,
size_per_range=True):
assert mmcv.is_list_of(ranges, list)
assert mmengine.is_list_of(ranges, list)
if size_per_range:
if len(sizes) != len(ranges):
assert len(ranges) == 1
......@@ -52,7 +52,7 @@ class Anchor3DRangeGenerator(object):
assert len(ranges) == len(sizes)
else:
assert len(ranges) == 1
assert mmcv.is_list_of(sizes, list)
assert mmengine.is_list_of(sizes, list)
assert isinstance(scales, list)
self.sizes = sizes
......
# Copyright (c) OpenMMLab. All rights reserved.
from typing import Optional, Union
from mmengine.data import InstanceData
from mmengine.structures import InstanceData
from mmdet3d.registry import TASK_UTILS
from mmdet.models.task_modules import AssignResult, MaxIoUAssigner
......@@ -101,7 +101,7 @@ class Max3DIoUAssigner(MaxIoUAssigner):
:obj:`AssignResult`: The assign result.
Example:
>>> from mmengine.data import InstanceData
>>> from mmengine.structures import InstanceData
>>> self = MaxIoUAssigner(0.5, 0.5)
>>> pred_instances = InstanceData()
>>> pred_instances.priors = torch.Tensor([[0, 0, 10, 10],
......
# Copyright (c) OpenMMLab. All rights reserved.
import torch
from mmengine.data import InstanceData
from mmengine.structures import InstanceData
from mmdet3d.registry import TASK_UTILS
from mmdet.models.task_modules import AssignResult
......
# Copyright (c) OpenMMLab. All rights reserved.
from .builder import build_voxel_generator
from .voxel_generator import VoxelGenerator
__all__ = ['build_voxel_generator', 'VoxelGenerator']
__all__ = ['VoxelGenerator']
# Copyright (c) OpenMMLab. All rights reserved.
import mmcv
from . import voxel_generator
def build_voxel_generator(cfg, **kwargs):
"""Builder of voxel generator."""
if isinstance(cfg, voxel_generator.VoxelGenerator):
return cfg
elif isinstance(cfg, dict):
return mmcv.runner.obj_from_dict(
cfg, voxel_generator, default_args=kwargs)
else:
raise TypeError('Invalid type {} for building a sampler'.format(
type(cfg)))
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment