使用 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 期望输出只是注释图(二维数组)。
建议您修改数据集并准备注释图。
我正在使用 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 期望输出只是注释图(二维数组)。 建议您修改数据集并准备注释图。