使用 pytorch 训练我的模型时出错,stack 期望每个张量大小相等

Error during traning my model with pytorch, stack expects each tensor to be equal size

我正在使用 MMSegmentainon 库来训练我的模型,例如图像分割,在训练过程中,我创建了模型(Vision Transformer),当我尝试使用这个训练模型时:

我收到这个错误:

RuntimeError:CaughtRuntimeErrorinDataLoaderworkerprocess0.OriginalTraceback(mostrecentcalllast): File"/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/worker.py",line287,in _worker_loop data=fetcher.fetch(index) File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/fetch.py", line 47, infetch returnself.collate_fn(data) File "/usr/local/lib/python3.7/dist-packages/mmcv/parallel/collate.py", line 81, in collateforkeyinbatch[0] File"/usr/local/lib/python3.7/dist-packages/mmcv/parallel/collate.py",line81,in <dictcomp> forkey in batch[0] File"/usr/local/lib/python3.7/dist-packages/mmcv/parallel/collate.py",line59,incollatestacked.append(default_collate(padded_samples)) File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/collate.py", line 56, indefault_collate returntorch.stack(batch,0,out=out)

RuntimeError: stack expects each tensor to be equal size, but got [1, 256, 256, 256] at entry0 and[1,256,256] at entry3

** 我还必须提到,我已经用他们库中可用的其他模型测试了我自己的数据集,但它们都可以正常工作。

尝试过:


model=build_segmentor(cfg.model,train_cfg=cfg.get('train_cfg'),test_cfg=cfg.get('test_cfg'))train_segmentor(model,datasets,cfg,distributed=False,validate=True,
meta=dict())

您的数据集中的图像似乎与 VIT 模型中的图像大小不同 https://arxiv.org/abs/2010.11929,您使用的是 MLP 模型,

如果不是这种情况,则值得检查您的标签是否都在预期尺寸内。 据推测,MMsegmentattion 期望输出只是注释图(二维数组)。 建议您修改数据集并准备注释图。