-
Notifications
You must be signed in to change notification settings - Fork 56
Description
norm_cfg = dict(type='BN', requires_grad=True)
model = dict(
type='EncoderDecoder',
backbone=dict(
delete=True,
type='Vanillanet',
act_num=3,
dims=[512, 512, 1024, 2048, 2048, 2048, 2048, 2048, 2048, 4096, 4096],
strides=[1, 2, 2, 1, 1, 1, 1, 1, 2, 1],
out_indices=[1, 2, 8, 9],
norm_cfg=dict(type='BN', requires_grad=True),
with_extra_norm=True),
neck=dict(
type='FPN',
in_channels=[512, 1024, 2048, 4096],
out_channels=1024,
num_outs=4),
decode_head=dict(
type='SegformerHead',
in_channels=[128, 256, 512, 1024],
in_index=[0, 1, 2, 3],
channels=512,
dropout_ratio=0.1,
num_classes=2,
norm_cfg=dict(type='BN', requires_grad=True),
align_corners=False,
loss_decode=dict(
type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0)),
train_cfg=dict(),
test_cfg=dict(mode='whole'))
dataset_type = 'WaterDataset'
data_root = 'E:\zbl\pic\segformer-pytorch-master\VOCdevkit\zbl'
img_norm_cfg = dict(
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
crop_size = (512, 512)
train_pipeline = [
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', reduce_zero_label=False),
dict(type='Resize', img_scale=(512, 512), ratio_range=(0.5, 2.0)),
dict(type='RandomCrop', crop_size=(512, 512), cat_max_ratio=0.75),
dict(type='RandomFlip', prob=0.5),
dict(type='PhotoMetricDistortion'),
dict(
type='Normalize',
mean=[123.675, 116.28, 103.53],
std=[58.395, 57.12, 57.375],
to_rgb=True),
dict(type='Pad', size=(512, 512), pad_val=0, seg_pad_val=255),
dict(type='DefaultFormatBundle'),
dict(type='Collect', keys=['img', 'gt_semantic_seg'])
]
test_pipeline = [
dict(type='LoadImageFromFile'),
dict(
type='MultiScaleFlipAug',
img_scale=(512, 512),
flip=False,
transforms=[
dict(type='Resize', keep_ratio=True),
dict(type='RandomFlip'),
dict(
type='Normalize',
mean=[123.675, 116.28, 103.53],
std=[58.395, 57.12, 57.375],
to_rgb=True),
dict(type='ImageToTensor', keys=['img']),
dict(type='Collect', keys=['img'])
])
]
data = dict(
samples_per_gpu=8,
workers_per_gpu=2,
train=dict(
type='WaterDataset',
data_root='E:\zbl\pic\segformer-pytorch-master\VOCdevkit\zbl',
img_dir='JPEGImages',
ann_dir='SegmentationClass',
split='ImageSets/Segmentation/train.txt',
pipeline=[
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', reduce_zero_label=False),
dict(type='Resize', img_scale=(512, 512), ratio_range=(0.5, 2.0)),
dict(type='RandomCrop', crop_size=(512, 512), cat_max_ratio=0.75),
dict(type='RandomFlip', prob=0.5),
dict(type='PhotoMetricDistortion'),
dict(
type='Normalize',
mean=[123.675, 116.28, 103.53],
std=[58.395, 57.12, 57.375],
to_rgb=True),
dict(type='Pad', size=(512, 512), pad_val=0, seg_pad_val=255),
dict(type='DefaultFormatBundle'),
dict(type='Collect', keys=['img', 'gt_semantic_seg'])
]),
val=dict(
type='WaterDataset',
data_root='E:\zbl\pic\segformer-pytorch-master\VOCdevkit\zbl',
img_dir='JPEGImages',
ann_dir='SegmentationClass',
split='ImageSets/Segmentation/val.txt',
pipeline=[
dict(type='LoadImageFromFile'),
dict(
type='MultiScaleFlipAug',
img_scale=(512, 512),
flip=False,
transforms=[
dict(type='Resize', keep_ratio=True),
dict(type='RandomFlip'),
dict(
type='Normalize',
mean=[123.675, 116.28, 103.53],
std=[58.395, 57.12, 57.375],
to_rgb=True),
dict(type='ImageToTensor', keys=['img']),
dict(type='Collect', keys=['img'])
])
]),
test=dict(
type='WaterDataset',
data_root='E:\zbl\pic\segformer-pytorch-master\VOCdevkit\zbl',
img_dir='JPEGImages',
ann_dir='SegmentationClass',
split='ImageSets/Segmentation/val.txt',
pipeline=[
dict(type='LoadImageFromFile'),
dict(
type='MultiScaleFlipAug',
img_scale=(512, 512),
flip=False,
transforms=[
dict(type='Resize', keep_ratio=True),
dict(type='RandomFlip'),
dict(
type='Normalize',
mean=[123.675, 116.28, 103.53],
std=[58.395, 57.12, 57.375],
to_rgb=True),
dict(type='ImageToTensor', keys=['img']),
dict(type='Collect', keys=['img'])
])
]))
log_config = dict(
interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
dist_params = dict(backend='nccl')
log_level = 'INFO'
load_from = 'E:\zbl\mmsegmentation-0.23.0\pretrain\vanillanet_12.pth'
resume_from = None
workflow = [('train', 1), ('val', 1)]
cudnn_benchmark = True
optimizer = dict(
constructor='LearningRateDecayOptimizerConstructor',
type='AdamW',
lr=0.00013,
betas=(0.9, 0.999),
weight_decay=0.05,
paramwise_cfg=dict(decay_rate=0.6, decay_type='layer_wise', num_layers=6))
optimizer_config = dict(grad_clip=None)
lr_config = dict(
policy='step',
warmup='linear',
warmup_iters=500,
warmup_ratio=0.001,
step=[15000, 20000])
runner = dict(type='IterBasedRunner', max_iters=20000)
checkpoint_config = dict(by_epoch=False, interval=2000)
evaluation = dict(interval=2000, metric='mIoU')
work_dir = 'logs_vanillanet/pretrain_12'
gpu_ids = [0]
auto_resume = False
报错信息
Traceback (most recent call last):
File "E:/zbl/mmsegmentation-0.23.0/tools/train.py", line 244, in
main()
File "E:/zbl/mmsegmentation-0.23.0/tools/train.py", line 233, in main
train_segmentor(
File "E:\zbl\mmsegmentation-0.23.0\mmseg\apis\train.py", line 174, in train_segmentor
runner.run(data_loaders, cfg.workflow)
File "D:\Anaconda3.0\envs\nextvit\lib\site-packages\mmcv\runner\iter_based_runner.py", line 134, in run
iter_runner(iter_loaders[i], **kwargs)
File "D:\Anaconda3.0\envs\nextvit\lib\site-packages\mmcv\runner\iter_based_runner.py", line 61, in train
outputs = self.model.train_step(data_batch, self.optimizer, **kwargs)
File "D:\Anaconda3.0\envs\nextvit\lib\site-packages\mmcv\parallel\data_parallel.py", line 75, in train_step
return self.module.train_step(*inputs[0], **kwargs[0])
File "E:\zbl\mmsegmentation-0.23.0\mmseg\models\segmentors\base.py", line 138, in train_step
losses = self(**data_batch)
File "D:\Anaconda3.0\envs\nextvit\lib\site-packages\torch\nn\modules\module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "D:\Anaconda3.0\envs\nextvit\lib\site-packages\mmcv\runner\fp16_utils.py", line 110, in new_func
return old_func(*args, **kwargs)
File "E:\zbl\mmsegmentation-0.23.0\mmseg\models\segmentors\base.py", line 108, in forward
return self.forward_train(img, img_metas, **kwargs)
File "E:\zbl\mmsegmentation-0.23.0\mmseg\models\segmentors\encoder_decoder.py", line 139, in forward_train
x = self.extract_feat(img)
File "E:\zbl\mmsegmentation-0.23.0\mmseg\models\segmentors\encoder_decoder.py", line 67, in extract_feat
x = self.neck(x)
File "D:\Anaconda3.0\envs\nextvit\lib\site-packages\torch\nn\modules\module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "D:\Anaconda3.0\envs\nextvit\lib\site-packages\mmcv\runner\fp16_utils.py", line 110, in new_func
return old_func(*args, **kwargs)
File "E:\zbl\mmsegmentation-0.23.0\mmseg\models\necks\fpn.py", line 167, in forward
laterals = [
File "E:\zbl\mmsegmentation-0.23.0\mmseg\models\necks\fpn.py", line 168, in
lateral_conv(inputs[i + self.start_level])
File "D:\Anaconda3.0\envs\nextvit\lib\site-packages\torch\nn\modules\module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "D:\Anaconda3.0\envs\nextvit\lib\site-packages\mmcv\cnn\bricks\conv_module.py", line 201, in forward
x = self.conv(x)
File "D:\Anaconda3.0\envs\nextvit\lib\site-packages\torch\nn\modules\module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "D:\Anaconda3.0\envs\nextvit\lib\site-packages\torch\nn\modules\conv.py", line 446, in forward
return self._conv_forward(input, self.weight, self.bias)
File "D:\Anaconda3.0\envs\nextvit\lib\site-packages\torch\nn\modules\conv.py", line 442, in _conv_forward
return F.conv2d(input, weight, bias, self.stride,
RuntimeError: Given groups=1, weight of size [1024, 512, 1, 1], expected input[8, 1024, 64, 64] to have 512 channels, but got 1024 channels instead
进程已结束,退出代码1
试验了vanillanet12和vanillanet13,都报同样的错
期望尽快解答!感谢!