-
Notifications
You must be signed in to change notification settings - Fork 147
Open
Description
I encountered the error: **RecursionError: maximum recursion depth exceeded in comparison ** while training with my custom dataset. I tried to set num_workers to 0 but the issue didn't get resolved. Please provide the fix.
The following is the code for the config file for the custom dataset
dataset_type = 'MyDataset'
# Correct path of your dataset
data_root = 'data/my_dataset'
img_norm_cfg = dict( # This img_norm_cfg is widely used because it is mean and std of ImageNet 1K pretrained model
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
crop_size = (512, 512) # Crop size of image in training
train_pipeline=[]
test_pipeline=[]
data = dict(
samples_per_gpu=4, # Batch size of a single GPU
workers_per_gpu=0, # Worker to pre-fetch data for each single GPU
train=dict( # Train dataset config
type=dataset_type, # Type of dataset, refer to mmseg/datasets/ for details.
data_root=data_root, # The root of dataset.
img_dir='img_dir/train', # The image directory of dataset.
ann_dir='ann_dir/train', # The annotation directory of dataset.
pipeline=train_pipeline), # pipeline, this is passed by the train_pipeline created before.
val=dict( # Validation dataset config.
type=dataset_type,
data_root=data_root,
img_dir='img_dir/val',
ann_dir='ann_dir/val',
pipeline=test_pipeline), # Pipeline is passed by test_pipeline created before.
test=dict(
type=dataset_type,
data_root=data_root,
img_dir='img_dir/val',
ann_dir='ann_dir/val',
pipeline=test_pipeline))
The following is the python configuration file of the intended SETR model based on SETR_MLA.
_base_ = [
'../_base_/models/setr_mla.py',
'../_base_/datasets/my_dataset_config.py', '../_base_/default_runtime.py',
'../_base_/schedules/schedule_80k.py'
]
# model settings
norm_cfg = dict(type='SyncBN', requires_grad=True)
model = dict(
type='EncoderDecoder',
backbone=dict(
type='VIT_MLA',
model_name='vit_large_patch16_384',
img_size=512,
patch_size=16,
in_chans=3,
embed_dim=1024,
depth=24,
num_heads=16,
num_classes=3,
drop_rate=0.1,
norm_cfg=norm_cfg,
pos_embed_interp=True,
align_corners=False,
mla_channels=256,
mla_index=(5, 11, 17, 23)
),
decode_head=dict(
type='VIT_MLAHead',
in_channels=1024,
channels=512,
img_size=512,
mla_channels=256,
mlahead_channels=128,
num_classes=3,
norm_cfg=norm_cfg,
align_corners=False,
loss_decode=dict(
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)))
# model training and testing settings
train_cfg = dict()
test_cfg = dict(mode='whole')
optimizer = dict(lr=0.002, weight_decay=0.0,
paramwise_cfg=dict(custom_keys={'head': dict(lr_mult=10.)})
)
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)
test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))
find_unused_parameters = True
data = dict(samples_per_gpu=1)
test_pipeline=[]
data = dict(
val=dict(pipeline=test_pipeline),
test=dict(pipeline=test_pipeline))
Metadata
Metadata
Assignees
Labels
No labels