Skip to content

ModuleNotFoundError: No module named 'custom_net' #8

@lindk-cmd

Description

@lindk-cmd

Custom modules cannot be used
error:

Training command is python d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\site-packages\mmcls\.mim\tools\train.py custom_net_config.py --gpus 1 --launcher none --work-dir MyExperiment.
Traceback (most recent call last):
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\site-packages\mmcv\utils\misc.py", line 73, in import_modules_from_strings
    imported_tmp = import_module(imp)
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'custom_net'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\site-packages\mmcls\.mim\tools\train.py", line 181, in <module>
    main()
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\site-packages\mmcls\.mim\tools\train.py", line 90, in main
    cfg = Config.fromfile(args.config)
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\site-packages\mmcv\utils\config.py", line 334, in fromfile
    import_modules_from_strings(**cfg_dict['custom_imports'])
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\site-packages\mmcv\utils\misc.py", line 80, in import_modules_from_strings
    raise ImportError
ImportError
Traceback (most recent call last):
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "D:\software\Anaconda\anaconda\envs\pytorch1_8_1\Scripts\mim.exe\__main__.py", line 7, in <module>
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\site-packages\click\core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\site-packages\click\core.py", line 782, in main
    rv = self.invoke(ctx)
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\site-packages\click\core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\site-packages\click\core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\site-packages\click\core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\site-packages\mim\commands\train.py", line 96, in cli
    is_success, msg = train(
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\site-packages\mim\commands\train.py", line 255, in train
    ret = subprocess.check_call(
  File "d:\software\anaconda\anaconda\envs\pytorch1_8_1\lib\subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['python', 'd:\\software\\anaconda\\anaconda\\envs\\pytorch1_8_1\\lib\\site-packages\\mmcls\\.mim\\tools\\train.py', 'custom_net_config.py', '--gpus', '1', '--launcher', 'none', '--work-dir', 'MyExperiment']' returned non-zero exit status 1.

image

custom_net.py

from mim.utils import exit_with_error

try:
    from mmcls.models.builder import BACKBONES
    from mmcv.cnn import ConvModule, constant_init, kaiming_init
    from torch import nn
except ImportError:
    exit_with_error('Please install mmcls, mmcv, torch to run this example.')
@BACKBONES.register_module()
class CustomNet(nn.Module):
    def __init__(self, in_channels):
        super().__init__()
        self.in_channels = in_channels
        conv_param = dict(
            kernel_size=3,
            stride=2,
            conv_cfg=dict(type='Conv2d'),
            norm_cfg=dict(type='BN2d'),
            act_cfg=dict(type='ReLU'))
        self.conv1 = ConvModule(3, 16, **conv_param)
        self.conv2 = ConvModule(16, 32, **conv_param)
        self.conv3 = ConvModule(32, 64, **conv_param)
    def init_weights(self, pretrained=None):
        for m in self.modules():
            if isinstance(m, nn.Conv2d):
                kaiming_init(m)
            elif isinstance(m, nn.BatchNorm2d):
                constant_init(m, 1)
    def forward(self, x):
        x = self.conv1(x)
        x = self.conv2(x)
        x = self.conv3(x)
        return x

custom_net_config.py

custom_imports = dict(imports=['custom_net'], allow_failed_imports=False)
model = dict(
    type='ImageClassifier',
    # Use the custom backbone
    backbone=dict(type='CustomNet', in_channels=3),
    neck=dict(type='GlobalAveragePooling'),
    head=dict(
        type='LinearClsHead',
        num_classes=10,
        in_channels=64,
        loss=dict(type='CrossEntropyLoss', loss_weight=1.0),
    ))

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions