-
Notifications
You must be signed in to change notification settings - Fork 17
ModuleNotFoundError: No module named 'custom_net' #8
Copy link
Copy link
Open
Description
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.
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),
))
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
