Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I have a bug when I launch train.py #244

Open
SylvainArd opened this issue May 2, 2023 · 0 comments
Open

I have a bug when I launch train.py #244

SylvainArd opened this issue May 2, 2023 · 0 comments

Comments

@SylvainArd
Copy link

Thanks for your error report and we appreciate it a lot.

Checklist

  1. I have searched related issues but cannot get the expected help.
  2. The bug has not been fixed in the latest version.

Describe the bug
A clear and concise description of what the bug is.
An error when I launch train.py

Reproduction

  1. What command or script did you run?
    a batch file containing :
    call conda activate solov2
    cd C:\Users\MASTER\Desktop\SOLO-master\SOLO-master
    set PYTHONPATH=C:\Users\MASTER\Desktop\SOLO-master;%PYTHONPATH%
    python tools/train.py configs/solov2/solov2_light_448_r18_fpn_8gpu_3x.py
    pause
A placeholder for the command.
  1. Did you make any modifications on the code or config? Did you understand what you have modified?
    yes I added a my_dataset.py in mmdet/datasets with the content :
    from .coco import CocoDataset
    from .registry import DATASETS
    @DATASETS.register_module
    class MyDataset(CocoDataset):
    CLASSES = ['null', 'points']

and I have change the configs/solov2/solov2_light_448_r18_fpn_8gpu_3x.py file to :

model settings

model = dict(
type='SOLOv2',
pretrained='torchvision://resnet18',
backbone=dict(
type='ResNet',
depth=18,
num_stages=4,
out_indices=(0, 1, 2, 3), # C2, C3, C4, C5
frozen_stages=1,
style='pytorch'),
neck=dict(
type='FPN',
in_channels=[64, 128, 256, 512],
out_channels=256,
start_level=0,
num_outs=5),
bbox_head=dict(
type='SOLOv2Head',
num_classes=1,
in_channels=256,
stacked_convs=2,
seg_feat_channels=256,
strides=[8, 8, 16, 32, 32],
scale_ranges=((1, 56), (28, 112), (56, 224), (112, 448), (224, 896)),
sigma=0.2,
num_grids=[40, 36, 24, 16, 12],
ins_out_channels=128,
loss_ins=dict(
type='DiceLoss',
use_sigmoid=True,
loss_weight=3.0),
loss_cate=dict(
type='FocalLoss',
use_sigmoid=True,
gamma=2.0,
alpha=0.25,
loss_weight=1.0)),
mask_feat_head=dict(
type='MaskFeatHead',
in_channels=256,
out_channels=128,
start_level=0,
end_level=3,
num_classes=128,
norm_cfg=dict(type='GN', num_groups=32, requires_grad=True)),
)

training and testing settings

train_cfg = dict()
test_cfg = dict(
nms_pre=500,
score_thr=0.1,
mask_thr=0.5,
update_thr=0.05,
kernel='gaussian', # gaussian/linear
sigma=2.0,
max_per_img=100)

dataset settings

dataset_type = 'MyDataset'
data_root = 'datasets/'
img_norm_cfg = dict(
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
train_pipeline = [
dict(type='LoadImageFromFile'),
dict(type='LoadAnnotations', with_bbox=True, with_mask=True),
dict(type='Resize',
img_scale=[(768, 512), (768, 480), (768, 448),
(768, 416), (768, 384), (768, 352)],
multiscale_mode='value',
keep_ratio=True),
dict(type='RandomFlip', flip_ratio=0.5),
dict(type='Normalize', **img_norm_cfg),
dict(type='Pad', size_divisor=32),
dict(type='DefaultFormatBundle'),
dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels', 'gt_masks']),
]
test_pipeline = [
dict(type='LoadImageFromFile'),
dict(
type='MultiScaleFlipAug',
img_scale=(768, 448),
flip=False,
transforms=[
dict(type='Resize', keep_ratio=True),
dict(type='RandomFlip'),
dict(type='Normalize', **img_norm_cfg),
dict(type='Pad', size_divisor=32),
dict(type='ImageToTensor', keys=['img']),
dict(type='Collect', keys=['img']),
])
]
data = dict(
imgs_per_gpu=2,
workers_per_gpu=2,
train=dict(
type=dataset_type,
ann_file=data_root + 'trainval.json',
img_prefix=data_root + 'trainval/',
pipeline=train_pipeline),
val=dict(
type=dataset_type,
ann_file=data_root + 'trainval.json',
img_prefix=data_root + 'trainval/',
pipeline=test_pipeline),
test=dict(
type=dataset_type,
ann_file=data_root + 'trainval.json',
img_prefix=data_root + 'trainval/',
pipeline=test_pipeline))

optimizer

optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001)
optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))

learning policy

lr_config = dict(
policy='step',
warmup='linear',
warmup_iters=500,
warmup_ratio=0.01,
step=[27, 33])
checkpoint_config = dict(interval=1)

yapf:disable

log_config = dict(
interval=50,
hooks=[
dict(type='TextLoggerHook'),
# dict(type='TensorboardLoggerHook')
])

yapf:enable

runtime settings

total_epochs = 36
device_ids = range(8)
dist_params = dict(backend='nccl')
log_level = 'INFO'
work_dir = './work_dirs/solov2_light_release_r18_fpn_8gpu_3x'
load_from = None
resume_from = None
workflow = [('train', 1)]

I have added at root directory a folder "datasets" with a folder of images in it and a trainval.json file containing the coco annotations
my polygons instances are of category "points"
5. What dataset did you use?

Environment

  1. Please run python tools/collect_env.py to collect necessary environment infomation and paste it here.
    I have the error :
    Traceback (most recent call last):
    File "tools/collect_env.py", line 12, in
    from mmdet.ops import get_compiler_version, get_compiling_cuda_version
    ModuleNotFoundError: No module named 'mmdet.ops'
    when I run python tools/collect_env.py
  2. You may add addition that may be helpful for locating the problem, such as
    • How you installed PyTorch [e.g., pip, conda, source]
      conda create --name solov2 python=3.7 -y
      conda activate solov2
      conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forgey
      pip install mmdet mmcv==2.0.0
    • Other environment variables that may be related (such as $PATH, $LD_LIBRARY_PATH, $PYTHONPATH, etc.)

Error traceback
If applicable, paste the error trackback here.

(solov2) C:\Users\MASTER\Desktop\SOLO-master\SOLO-master>python tools/train.py configs/solov2/solov2_light_448_r18_fpn_8gpu_3x.py
Traceback (most recent call last):
  File "tools/train.py", line 9, in <module>
    from mmcv import Config
ImportError: cannot import name 'Config' from 'mmcv' (C:\ProgramData\Anaconda3\envs\solov2\lib\site-packages\mmcv\__init__.py)

Bug fix
If you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant