RuntimeError: Trying to resize storage that is not resizable

今天跑代码的时候遇到这个问题报错如下:

Exception has occurred: RuntimeError
Caught RuntimeError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "/home/user-wsc/anaconda3/envs/yjhtorch16/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 302, in _worker_loop
    data = fetcher.fetch(index)
  File "/home/user-wsc/anaconda3/envs/yjhtorch16/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 52, in fetch
    return self.collate_fn(data)
  File "/home/user-wsc/anaconda3/envs/yjhtorch16/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py", line 175, in default_collate
    return [default_collate(samples) for samples in transposed]  # Backwards compatibility.
  File "/home/user-wsc/anaconda3/envs/yjhtorch16/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py", line 175, in <listcomp>
    return [default_collate(samples) for samples in transposed]  # Backwards compatibility.
  File "/home/user-wsc/anaconda3/envs/yjhtorch16/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py", line 140, in default_collate
    out = elem.new(storage).resize_(len(batch), *list(elem.size()))
RuntimeError: Trying to resize storage that is not resizable ```

然后把num_works设为0报错如下:

User
Exception has occurred: RuntimeError
stack expects each tensor to be equal size, but got [3, 410, 256] at entry 0 and [3, 295, 256] at entry 1
  File "/home/user-wsc/code/FixMatch_agr/train.py", line 498, in test
    for batch_idx, (inputs, targets) in enumerate(test_loader):
  File "/home/user-wsc/code/FixMatch_agr/train.py", line 313, in main
    test_loss, test_acc_s, test_acc_g = test(args, test_loader, model, epoch=10)
  File "/home/user-wsc/code/FixMatch_agr/train.py", line 535, in <module>
    main()
RuntimeError: stack expects each tensor to be equal size, but got [3, 410, 256] at entry 0 and [3, 295, 256] at entry 1 

这个错误表明在堆叠(stacking)张量时,张量的大小不匹配。在上面的情况中,两个张量的高度维度不同,分别是 410 和 295。因此在数据预处理时,整图像的大小,使它们具有相同的高度。例如可以使用Resize。我发生错误是因为在train时Resize,而在验证集预处理时没有resize报错。在 transform_val中添加了transforms.RandomCrop。

transform_labeled = transforms.Compose([
    transforms.RandomHorizontalFlip(),
    transforms.RandomCrop(size=32,
                        padding=int(32*0.125),
                        padding_mode='reflect'),
    transforms.ToTensor(),
    transforms.Normalize(mean=AgriculturalDisease_mean, std=AgriculturalDisease_std)
    ])
    transform_val = transforms.Compose([
        transforms.RandomCrop(size=32,
                    padding=int(32*0.125),
                    padding_mode='reflect'),
        transforms.ToTensor(),
        transforms.Normalize(mean=AgriculturalDisease_mean, std=AgriculturalDisease_std)
    ])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值