后面只有8张图片的这个可以跑。model的classes您先别改哈,可能还要改其他。先跑通,后面再改。from functools import partial
from modelscope.metainfo import Trainers
from modelscope.msdatasets import MsDataset
from modelscope.trainers import build_trainer
from modelscope.utils.config import Config, ConfigDict
from modelscope.utils.hub import read_config
from modelscope.msdatasets.dataset_cls import ExternalDataset
WORKSPACE = './work_dir'
model_id = 'damo/cv_swin-b_image-instance-segmentation_coco'
samples_per_gpu = read_config(model_id).train.dataloader.batch_size_per_gpu
train_config_kwargs={
'ann_file': 'Annotations/train.json',
'img_prefix': 'Images',
'folder_name': 'chair_sofa',
'classes': ['chair', 'sofa'],
'split_config':'/swift/ms_issue/swin_seg/dataset_files'
}
val_config_kwargs={
'ann_file': 'Annotations/train.json',
'img_prefix': 'Images',
'folder_name': 'chair_sofa',
'classes': ['chair', 'sofa'],
'test_mode':True,
'split_config':'/swift/ms_issue/swin_seg/dataset_files'
}
train_split_path_dict={'train':'/swift/ms_issue/swin_seg/dataset_files'}
val_split_path_dict={'validation':'/swift/ms_issue/swin_seg/dataset_files'}
train_dataset=ExternalDataset(split_path_dict=train_split_path_dict, config_kwargs=train_config_kwargs)
train_dataset=MsDataset.to_ms_dataset(train_dataset)
val_dataset=ExternalDataset(split_path_dict=val_split_path_dict, config_kwargs=val_config_kwargs)
val_dataset=MsDataset.to_ms_dataset(val_dataset)
max_epochs = 1
from mmcv.parallel import collate
kwargs = dict(
model=model_id,
data_collator=partial(collate, samples_per_gpu=samples_per_gpu),
train_dataset=train_dataset,
eval_dataset=val_dataset,
work_dir=WORKSPACE,
max_epochs=max_epochs)
trainer = build_trainer(
name=Trainers.image_instance_segmentation, default_args=kwargs)
print('===============================================================')
print('pre-trained model loaded, training started:')
print('===============================================================')
trainer.train()
print('===============================================================')
print('train success.')
print('===============================================================')
for i in range(max_epochs):
evalresults = trainer.evaluate(f'{WORKSPACE}/epoch{i+1}.pth')
print(f'epoch {i} evaluation result:')
print(eval_results)
print('===============================================================')
print('evaluate success')
print('===============================================================')
,问题可能是由以下几个方面导致的:
pip install -r requirements.txt
CopyCopy