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

ValueError: need at least one array to stack #217

Open
YangPanHZAU opened this issue Mar 2, 2022 · 0 comments
Open

ValueError: need at least one array to stack #217

YangPanHZAU opened this issue Mar 2, 2022 · 0 comments

Comments

@YangPanHZAU
Copy link

当我更换了自己定义的一个数据集时,出现了上述bug,以下是我的参数,
2022-03-02 22:06:41,743 - mmdet - INFO - Distributed training: False
2022-03-02 22:06:41,744 - mmdet - INFO - MMDetection Version: 1.0.0+unknown
2022-03-02 22:06:41,744 - mmdet - INFO - Config:

model settings

model = dict(
type='SOLO',
pretrained='torchvision://resnet50',
backbone=dict(
type='ResNet',
depth=50,
in_channels=4,
num_stages=4,
out_indices=(0, 1, 2, 3), # C2, C3, C4, C5
frozen_stages=1,
style='pytorch'),
neck=dict(
type='FPN',
in_channels=[256, 512, 1024, 2048],
out_channels=256,
start_level=0,
num_outs=5),
bbox_head=dict(
type='SOLOHead',
num_classes=2,
in_channels=256,
stacked_convs=7,
seg_feat_channels=256,
strides=[8, 8, 16, 32, 32],
scale_ranges=((1, 96), (48, 192), (96, 384), (192, 768), (384, 2048)),
sigma=0.2,
num_grids=[40, 36, 24, 16, 12],
cate_down_pos=0,
with_deform=False,
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),
))

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 = 'CocoDataset'
classes = ('cropland_parcel',)
data_root = '/home/py21/data_py/San_joaquin_2014_NAIP/'
img_norm_cfg = dict(
mean=[125.9752,125.6327,101.7500,138.4956], std=[45.8814,38.8707,38.4250,43.5888],to_rgb=False)
train_pipeline = [
dict(type='LoadRSImage',to_float32=True),
dict(type='LoadAnnotations', with_bbox=True, with_mask=True),
dict(type='Resize', img_scale=(512, 512), 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='LoadRSImage', to_float32=True),
dict(
type='MultiScaleFlipAug',
img_scale=(512, 512),
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=8,
workers_per_gpu=0,
train=dict(
type=dataset_type,
ann_file=data_root + 'San_joaquin_2014_NAIP_train.json',
img_prefix=data_root + 'train_coco/',
pipeline = train_pipeline),
val=dict(
type=dataset_type,
ann_file=data_root + 'San_joaquin_2014_NAIP_valid.json',
img_prefix=data_root + 'valid_coco/',
pipeline=test_pipeline),
test=dict(
type = dataset_type,
ann_file=data_root + 'San_joaquin_2014_NAIP_valid.json',
img_prefix=data_root + 'valid_coco/',
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))

evaluation = dict(interval=1,save_best='segm_mAP',

metric=['bbox', 'segm'])

learning policy

lr_config = dict(
policy='step',
warmup='linear',
warmup_iters=500,
warmup_ratio=0.001,
step=[32, 44])
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 = 50
dist_params = dict(backend='nccl')
log_level = 'INFO'
work_dir = './parcel_NAIP/solo_release_r50_fpn_50epoch'
load_from = None
resume_from = None
workflow = [('train', 1)]
filter_empty_gt = True
2022-03-02 22:06:42,553 - mmdet - INFO - load model from: torchvision://resnet50
2022-03-02 22:06:43,129 - mmdet - WARNING - The model and loaded state dict do not match exactly

size mismatch for conv1.weight: copying a param with shape torch.Size([64, 3, 7, 7]) from checkpoint, the shape in current model is torch.Size([64, 4, 7, 7]).
unexpected key in source state_dict: fc.weight, fc.bias

2022-03-02 22:06:50,715 - mmdet - INFO - Start running, host: py21@gpu3, work_dir: /home/py21/SOLO-master/parcel_NAIP/solo_release_r50_fpn_50epoch
2022-03-02 22:06:50,715 - mmdet - INFO - workflow: [('train', 1)], max: 50 epochs
2022-03-02 22:11:43,107 - mmdet - INFO - Epoch [1][50/307] lr: 0.00099, eta: 1 day, 0:51:08, time: 5.848, data_time: 1.795, memory: 8342, loss_ins: 2.9401, loss_cate: 0.5971, loss: 3.5373
2022-03-02 22:16:05,093 - mmdet - INFO - Epoch [1][100/307] lr: 0.00199, eta: 23:29:00, time: 5.240, data_time: 1.742, memory: 8347, loss_ins: 2.9399, loss_cate: 0.4326, loss: 3.3725

File "/home/py21/SOLO-master/mmdet/datasets/custom.py", line 131, in getitem
data = self.prepare_train_img(idx)
File "/home/py21/SOLO-master/mmdet/datasets/custom.py", line 144, in prepare_train_img
return self.pipeline(results)
File "/home/py21/SOLO-master/mmdet/datasets/pipelines/compose.py", line 24, in call
data = t(data)
File "/home/py21/SOLO-master/mmdet/datasets/pipelines/transforms.py", line 176, in call
self._resize_masks(results)
File "/home/py21/SOLO-master/mmdet/datasets/pipelines/transforms.py", line 159, in _resize_masks
results[key] = np.stack(masks)
File "<array_function internals>", line 6, in stack
File "/home/py21/anaconda3/envs/solo/lib/python3.7/site-packages/numpy/core/shape_base.py", line 423, in stack
raise ValueError('need at least one array to stack')
ValueError: need at least one array to stack

请问是什么具体问题呢?

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