[After configuring configs/distill/mmdet/cwd/cwd_cls_head_gfl_r101_fpn_gfl_r50_fpn_1x_coco.py to train.py to run and train, and then configure and run feature_virtualization.py but reported error AssertionError: “neck” is not in the model.
which step may be missing, please help me.]
auto_scale_lr = dict(base_batch_size=16, enable=False)
backend_args = None
data_root = 'D:\\AcademicResearch\\PaperCode\\MMCV_tutorials\\mmrazor-main\\data\\coco\\train2017'
dataset_type = 'CocoDataset'
default_hooks = dict(
checkpoint=dict(_scope_='mmdet', interval=1, type='CheckpointHook'),
logger=dict(_scope_='mmdet', interval=50, type='LoggerHook'),
param_scheduler=dict(_scope_='mmdet', type='ParamSchedulerHook'),
sampler_seed=dict(_scope_='mmdet', type='DistSamplerSeedHook'),
timer=dict(_scope_='mmdet', type='IterTimerHook'),
visualization=dict(_scope_='mmdet', draw=True, show=True, type='DetVisualizationHook', wait_time=2))
default_scope = 'mmdet'
env_cfg = dict(
cudnn_benchmark=False,
dist_cfg=dict(backend='nccl'),
mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0))
find_unused_parameters = True
launcher = 'none'
# load_from = 'D:\\\\AcademicResearch\\\\PaperCode\\\\MMCV_tutorials\\\\mmrazor-main\\\\tools\\\\work_dirs\\\\cwd_cls_head_gfl_r101_fpn_gfl_r50_fpn_1x_coco\\\\epoch_10.pth'
load_from ='D:\\AcademicResearch\\PaperCode\\MMCV_tutorials\\mmrazor-main\\tools\\work_dirs\\cwd_cls_head_gfl_r101_fpn_gfl_r50_fpn_1x_coco\\gfl_r101_fpn_mstrain_2x_coco_20200629_200126-dd12f847.pth'
log_level = 'INFO'
log_processor = dict(
_scope_='mmdet', by_epoch=True, type='LogProcessor', window_size=50)
model = dict(
_scope_='mmrazor',
architecture=dict(
# cfg_path='mmdet::gfl/gfl_r50_fpn_1x_coco.py', pretrained=False),
cfg_path='mmdet::gfl/gfl_r50_fpn_1x_coco.py', pretrained=True),
################################
##############################
distiller=dict(
distill_losses=dict(
loss_cwd_fpn0=dict(
loss_weight=10, tau=1, type='ChannelWiseDivergence'),
loss_cwd_fpn1=dict(
loss_weight=10, tau=1, type='ChannelWiseDivergence'),
loss_cwd_fpn2=dict(
loss_weight=10, tau=1, type='ChannelWiseDivergence'),
loss_cwd_fpn3=dict(
loss_weight=10, tau=1, type='ChannelWiseDivergence'),
loss_cwd_fpn4=dict(
loss_weight=10, tau=1, type='ChannelWiseDivergence')),
loss_forward_mappings=dict(
loss_cwd_fpn0=dict(
preds_S=dict(data_idx=0, from_student=True, recorder='fpn'),
preds_T=dict(data_idx=0, from_student=False, recorder='fpn')),
loss_cwd_fpn1=dict(
preds_S=dict(data_idx=1, from_student=True, recorder='fpn'),
preds_T=dict(data_idx=1, from_student=False, recorder='fpn')),
loss_cwd_fpn2=dict(
preds_S=dict(data_idx=2, from_student=True, recorder='fpn'),
preds_T=dict(data_idx=2, from_student=False, recorder='fpn')),
loss_cwd_fpn3=dict(
preds_S=dict(data_idx=3, from_student=True, recorder='fpn'),
preds_T=dict(data_idx=3, from_student=False, recorder='fpn')),
loss_cwd_fpn4=dict(
preds_S=dict(data_idx=4, from_student=True, recorder='fpn'),
preds_T=dict(data_idx=4, from_student=False, recorder='fpn'))),
student_recorders=dict(fpn=dict(source='neck', type='ModuleOutputs')),
teacher_recorders=dict(fpn=dict(source='neck', type='ModuleOutputs')),
type='ConfigurableDistiller'),
teacher=dict(
cfg_path='mmdet::gfl/gfl_r101_fpn_ms-2x_coco.py', pretrained=True),
type='FpnTeacherDistill')
optim_wrapper = dict(
_scope_='mmdet',
optimizer=dict(lr=0.01, momentum=0.9, type='SGD', weight_decay=0.0001),
type='OptimWrapper')
param_scheduler = [
dict(
_scope_='mmdet',
begin=0,
by_epoch=False,
end=500,
start_factor=0.001,
type='LinearLR'),
dict(
_scope_='mmdet',
begin=0,
by_epoch=True,
end=12,
gamma=0.1,
milestones=[
8,
11,
],
type='MultiStepLR'),
]
resume = False
test_cfg = dict(_scope_='mmdet', type='TestLoop')
test_dataloader = dict(
batch_size=1,
dataset=dict(
_scope_='mmdet',
ann_file=
'D:\\AcademicResearch\\PaperCode\\MMCV_tutorials\\mmrazor-main\\data\\coco\\annotations\\instances_val2017.json',
backend_args=None,
data_prefix=dict(
img=
'D:\\AcademicResearch\\PaperCode\\MMCV_tutorials\\mmrazor-main\\data\\coco\\val2017'
),
data_root=
'D:\\AcademicResearch\\PaperCode\\MMCV_tutorials\\mmrazor-main\\data\\coco\\train2017',
pipeline=[
dict(backend_args=None, type='LoadImageFromFile'),
dict(keep_ratio=True, scale=(
1333,
800,
), type='Resize'),
dict(type='LoadAnnotations', with_bbox=True),
dict(
meta_keys=(
'img_id',
'img_path',
'ori_shape',
'img_shape',
'scale_factor',
),
type='PackDetInputs'),
],
test_mode=True,
type='CocoDataset'),
drop_last=False,
num_workers=2,
persistent_workers=True,
sampler=dict(_scope_='mmdet', shuffle=False, type='DefaultSampler'))
test_evaluator = dict(
_scope_='mmdet',
ann_file=
'D:\\AcademicResearch\\PaperCode\\MMCV_tutorials\\mmrazor-main\\data\\coco\\annotations\\instances_val2017.json',
backend_args=None,
format_only=False,
metric='bbox',
type='CocoMetric')
test_pipeline = [
dict(_scope_='mmdet', backend_args=None, type='LoadImageFromFile'),
dict(_scope_='mmdet', keep_ratio=True, scale=(
1333,
800,
), type='Resize'),
dict(_scope_='mmdet', type='LoadAnnotations', with_bbox=True),
dict(
_scope_='mmdet',
meta_keys=(
'img_id',
'img_path',
'ori_shape',
'img_shape',
'scale_factor',
),
type='PackDetInputs'),
]
train_cfg = dict(
_scope_='mmdet',
max_epochs=20,
type='EpochBasedTrainLoop',
val_interval=10)
train_dataloader = dict(
batch_sampler=dict(_scope_='mmdet', type='AspectRatioBatchSampler'),
batch_size=2,
dataset=dict(
_scope_='mmdet',
ann_file=
'D:\\AcademicResearch\\PaperCode\\MMCV_tutorials\\mmrazor-main\\data\\coco\\annotations\\instances_train2017.json',
backend_args=None,
data_prefix=dict(
img=
'D:\\AcademicResearch\\PaperCode\\MMCV_tutorials\\mmrazor-main\\data\\coco\\train2017'
),
data_root=
'D:\\AcademicResearch\\PaperCode\\MMCV_tutorials\\mmrazor-main\\data\\coco\\train2017',
filter_cfg=dict(filter_empty_gt=True, min_size=32),
pipeline=[
dict(backend_args=None, type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True),
dict(keep_ratio=True, scale=(
1333,
800,
), type='Resize'),
dict(prob=0.5, type='RandomFlip'),
dict(type='PackDetInputs'),
],
type='CocoDataset'),
num_workers=2,
persistent_workers=True,
sampler=dict(_scope_='mmdet', shuffle=True, type='DefaultSampler'))
train_pipeline = [
dict(_scope_='mmdet', backend_args=None, type='LoadImageFromFile'),
dict(_scope_='mmdet', type='LoadAnnotations', with_bbox=True),
dict(_scope_='mmdet', keep_ratio=True, scale=(
1333,
800,
), type='Resize'),
dict(_scope_='mmdet', prob=0.5, type='RandomFlip'),
dict(_scope_='mmdet', type='PackDetInputs'),
]
val_cfg = dict(type='mmrazor.SingleTeacherDistillValLoop')
val_dataloader = dict(
batch_size=1,
dataset=dict(
_scope_='mmdet',
ann_file=
'D:\\AcademicResearch\\PaperCode\\MMCV_tutorials\\mmrazor-main\\data\\coco\\annotations\\instances_val2017.json',
backend_args=None,
data_prefix=dict(
img=
'D:\\AcademicResearch\\PaperCode\\MMCV_tutorials\\mmrazor-main\\data\\coco\\val2017'
),
data_root=
'D:\\AcademicResearch\\PaperCode\\MMCV_tutorials\\mmrazor-main\\data\\coco\\train2017',
pipeline=[
dict(backend_args=None, type='LoadImageFromFile'),
dict(keep_ratio=True, scale=(
1333,
800,
), type='Resize'),
dict(type='LoadAnnotations', with_bbox=True),
dict(
meta_keys=(
'img_id',
'img_path',
'ori_shape',
'img_shape',
'scale_factor',
),
type='PackDetInputs'),
],
test_mode=True,
type='CocoDataset'),
drop_last=False,
num_workers=2,
persistent_workers=True,
sampler=dict(_scope_='mmdet', shuffle=False, type='DefaultSampler'))
val_evaluator = dict(
_scope_='mmdet',
ann_file=
'D:\\AcademicResearch\\PaperCode\\MMCV_tutorials\\mmrazor-main\\data\\coco\\annotations\\instances_val2017.json',
backend_args=None,
format_only=False,
metric='bbox',
type='CocoMetric')
vis_backends = [
dict(_scope_='mmdet', type='LocalVisBackend'),
]
visualizer = dict(
_scope_='mmdet',
name='visualizer',
type='DetLocalVisualizer',
vis_backends=[
dict(type='LocalVisBackend'),
])
work_dir = './work_dirs\\cwd_cls_head_gfl_r101_fpn_gfl_r50_fpn_1x_coco'
Checklist
Describe the question you meet
[After configuring configs/distill/mmdet/cwd/cwd_cls_head_gfl_r101_fpn_gfl_r50_fpn_1x_coco.py to train.py to run and train, and then configure and run feature_virtualization.py but reported error AssertionError: “neck” is not in the model.
which step may be missing, please help me.]
Post related information
pip list | grep "mmcv\|mmrazor\|^torch"[here]
C:\ProgramData\anaconda3\envs\MMrazor\python.exe D:\AcademicResearch\PaperCode\MMCV_tutorials\mmrazor-main\tools\visualizations\feature_visualization.py D:\AcademicResearch\PaperCode\MMCV_tutorials\mmrazor-main\data\coco\train2017\12.jpg D:\AcademicResearch\PaperCode\MMCV_tutorials\mmrazor-main\tools\work_dirs\cwd_cls_head_gfl_r101_fpn_gfl_r50_fpn_1x_coco\my20240924_cwd_cls_head_gfl_r101_fpn_gfl_r50_fpn_1x_coco.py D:\AcademicResearch\PaperCode\MMCV_tutorials\mmrazor-main\tools\visualizations\vis_configs\fpn_feature_visualization.py D:\AcademicResearch\PaperCode\MMCV_tutorials\mmrazor-main\tools\work_dirs\cwd_cls_head_gfl_r101_fpn_gfl_r50_fpn_1x_coco\epoch_10.pth --device cuda:0 --repo mmdet --use-norm --overlaid --channel-reduction pixel_wise_max
C:\ProgramData\anaconda3\envs\MMrazor\lib\site-packages\mmdet\models\dense_heads\anchor_head.py:108: UserWarning: DeprecationWarning:
num_anchorsis deprecated, for consistency or also usenum_base_priorsinsteadwarnings.warn('DeprecationWarning:
num_anchorsis deprecated, 'Loads checkpoint by http backend from path: https://download.openmmlab.com/mmdetection/v2.0/gfl/gfl_r50_fpn_1x_coco/gfl_r50_fpn_1x_coco_20200629_121244-25944287.pth
C:\ProgramData\anaconda3\envs\MMrazor\lib\site-packages\mmdet\models\dense_heads\anchor_head.py:108: UserWarning: DeprecationWarning:
num_anchorsis deprecated, for consistency or also usenum_base_priorsinsteadwarnings.warn('DeprecationWarning:
num_anchorsis deprecated, 'Loads checkpoint by http backend from path: https://download.openmmlab.com/mmdetection/v2.0/gfl/gfl_r101_fpn_mstrain_2x_coco/gfl_r101_fpn_mstrain_2x_coco_20200629_200126-dd12f847.pth
Loads checkpoint by local backend from path: D:\AcademicResearch\PaperCode\MMCV_tutorials\mmrazor-main\tools\work_dirs\cwd_cls_head_gfl_r101_fpn_gfl_r50_fpn_1x_coco\epoch_10.pth
C:\ProgramData\anaconda3\envs\MMrazor\lib\site-packages\mmengine\visualization\visualizer.py:196: UserWarning: Failed to add <class 'mmengine.visualization.vis_backend.LocalVisBackend'>, please provide the
save_dirargument.warnings.warn(f'Failed to add {vis_backend.class}, '
Traceback (most recent call last):
File "D:\AcademicResearch\PaperCode\MMCV_tutorials\mmrazor-main\tools\visualizations\feature_visualization.py", line 185, in
main(args)
File "D:\AcademicResearch\PaperCode\MMCV_tutorials\mmrazor-main\tools\visualizations\feature_visualization.py", line 143, in main
recorder_manager.initialize(model)
File "D:\AcademicResearch\PaperCode\MMCV_tutorials\mmrazor-main\mmrazor\models\task_modules\recorder\recorder_manager.py", line 106, in initialize
recorder.initialize(model)
File "D:\AcademicResearch\PaperCode\MMCV_tutorials\mmrazor-main\mmrazor\models\task_modules\recorder\base_recorder.py", line 58, in initialize
self.prepare_from_model(model)
File "D:\AcademicResearch\PaperCode\MMCV_tutorials\mmrazor-main\mmrazor\models\task_modules\recorder\module_outputs_recorder.py", line 74, in prepare_from_model
assert founded, f'"{self.source}" is not in the model.'
AssertionError: "neck" is not in the model.
Process finished with exit code 1
4. Other code you modified in the
mmrazorfolder.[here]