weitunglin / pixmamba

Official code for PixMamba
https://arxiv.org/abs/2406.08444
15 stars 3 forks source link

pixmamba training with mmagic: KeyError: 'uie/SSIM' #1

Closed daduguai closed 2 months ago

daduguai commented 2 months ago

I tried to re-run pixmamba with mmagic. But I got this error info after 50/40000. Traceback (most recent call last): File "/root/program/pixmamba/mmagic/tools/train.py", line 122, in main() File "/root/program/pixmamba/mmagic/tools/train.py", line 115, in main runner.train() File "/root/miniconda3/envs/pixmamba/lib/python3.10/site-packages/mmengine/runner/runner.py", line 1777, in train model = self.train_loop.run() # type: ignore File "/root/miniconda3/envs/pixmamba/lib/python3.10/site-packages/mmengine/runner/loops.py", line 103, in run self.runner.val_loop.run() File "/root/miniconda3/envs/pixmamba/lib/python3.10/site-packages/mmengine/runner/loops.py", line 383, in run self.runner.call_hook('after_val_epoch', metrics=metrics) File "/root/miniconda3/envs/pixmamba/lib/python3.10/site-packages/mmengine/runner/runner.py", line 1839, in call_hook getattr(hook, fn_name)(self, **kwargs) File "/root/miniconda3/envs/pixmamba/lib/python3.10/site-packages/mmengine/hooks/checkpoint_hook.py", line 361, in after_val_epoch self._save_best_checkpoint(runner, metrics) File "/root/miniconda3/envs/pixmamba/lib/python3.10/site-packages/mmengine/hooks/checkpoint_hook.py", line 508, in _save_best_checkpoint key_score = metrics[key_indicator] KeyError: 'uie/SSIM'

Here is my uieb.py conf: train_img_scale = (256, 256) val_img_scale = (256, 256)

pipeline = [ dict( type='LoadImageFromFile', key='img', color_type='color', channel_order='rgb', imdecode_backend='cv2'), dict( type='LoadImageFromFile', key='gt', color_type='color', channel_order='rgb', imdecode_backend='cv2'), dict( type='Resize', keys=['img', 'gt'], scale=train_img_scale, ), dict(type='PackInputs') ]

train_pipeline = [ dict( type='LoadImageFromFile', key='img', color_type='color', channel_order='rgb', imdecode_backend='cv2'), dict( type='LoadImageFromFile', key='gt', color_type='color', channel_order='rgb', imdecode_backend='cv2'), dict( type='Resize', keys=['img', 'gt'], scale=train_img_scale, ), dict(type='Flip', keys=['img', 'gt'], flip_ratio=0.5, direction='horizontal'), dict(type='PackInputs') ] val_pipeline = [ dict( type='LoadImageFromFile', key='img', color_type='color', channel_order='rgb', imdecode_backend='cv2'), dict( type='LoadImageFromFile', key='gt', color_type='color', channel_order='rgb', imdecode_backend='cv2'), dict( type='Resize', keys=['img', 'gt'], scale=val_img_scale, ), dict(type='PackInputs') ]

test_pipeline = [ dict( type='LoadImageFromFile', key='img', color_type='color', channel_order='rgb', imdecode_backend='cv2'), dict( type='Resize', keys=['img'], scale=val_img_scale, ), dict(type='PackInputs') ]

data_root = '/home/allen/workspace/seamamba/data/uieb_t90/'

data_root = '/root/dataset/UIEB/' train_dataloader = dict( batch_size=8, num_workers=8, persistent_workers=True, drop_last=False, sampler=dict(type='DefaultSampler', shuffle=True), dataset=dict( type='BasicImageDataset', metainfo=dict(dataset_type='UIEB', task_name='denoising'), data_root=data_root+'train', data_prefix=dict(img='raw-890', gt='reference-890'), pipeline=train_pipeline ), )

val_dataloader = dict( batch_size=8, num_workers=8, persistent_workers=True, drop_last=False, sampler=dict(type='DefaultSampler', shuffle=False), dataset=dict( type='BasicImageDataset', metainfo=dict(dataset_type='UIEB', task_name='denoising'), data_root=data_root+'valid', data_prefix=dict(img='raw-890', gt='reference-890'), pipeline=val_pipeline ), )

t90_dataloader = dict( batch_size=8, num_workers=8, persistent_workers=True, drop_last=False, sampler=dict(type='DefaultSampler', shuffle=False), dataset=dict( type='BasicImageDataset', metainfo=dict(dataset_type='UIEB', task_name='denoising'), data_root=data_root+'test', data_prefix=dict(img='raw-90', gt='ref-90'), pipeline=val_pipeline ), ) c60_dataloader = dict( batch_size=8, num_workers=8, persistent_workers=True, drop_last=False, sampler=dict(type='DefaultSampler', shuffle=False), dataset=dict( type='BasicImageDataset', metainfo=dict(dataset_type='c60', task_name='denoising'), data_root=data_root+'test', data_prefix=dict(img='.', gt='.'), pipeline=val_pipeline ), )

evaluator = [ dict(type='MAE', prefix='uie'), dict(type='MSE', prefix='uie'), dict(type='SSIM', prefix='uie'), dict(type='PSNR', prefix='uie'), ]

c60_evaluator = [ dict(type='MAE', prefix='60'), dict(type='SSIM',prefix='uie'),

dict(type='UIQM', prefix='c60'),

# dict(type='UCIQE', prefix='c60'),

]

val_evaluator = evaluator

test_dataloader = [t90_dataloader, c60_dataloader, uccs_green_dataloader, uccs_blue_dataloader, uccs_blue_green_dataloader]

test_dataloader = [c60_dataloader]

test_evaluator = [t90_evaluator,c60_evaluator,uccsgreen_evaluator,uccsblue_evaluator,uccsbluegreen_evaluator]

test_evaluator = [c60_evaluator]

Is any thing wrong with my conf? Has anyone encountered this problem?