問題
今天模型訓(xùn)練,遇到了個(gè)bug
先是在dataloder那報(bào)了這樣一個(gè)錯(cuò)
RuntimeError: Caught RuntimeError in DataLoader worker process 0.
然后后面報(bào)
RuntimeError: Trying to resize storage that is not resizable
完整錯(cuò)誤代碼如下
Traceback (most recent call last):
File "train_temp.py", line 100, in <module>
for data in train_dataloader:
File "/data0/thw/anaconda3/envs/Denoising2/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 628, in __next__
data = self._next_data()
File "/data0/thw/anaconda3/envs/Denoising2/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1333, in _next_data
return self._process_data(data)
File "/data0/thw/anaconda3/envs/Denoising2/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1359, in _process_data
data.reraise()
File "/data0/thw/anaconda3/envs/Denoising2/lib/python3.8/site-packages/torch/_utils.py", line 543, in reraise
raise exception
RuntimeError: Caught RuntimeError in DataLoader worker process 0.
Original Traceback (most recent call last):
File "/data0/thw/anaconda3/envs/Denoising2/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 302, in _worker_loop
data = fetcher.fetch(index)
File "/data0/thw/anaconda3/envs/Denoising2/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 61, in fetch
return self.collate_fn(data)
File "/data0/thw/anaconda3/envs/Denoising2/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py", line 265, in default_collate
return collate(batch, collate_fn_map=default_collate_fn_map)
File "/data0/thw/anaconda3/envs/Denoising2/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py", line 143, in collate
return [collate(samples, collate_fn_map=collate_fn_map) for samples in transposed] # Backwards compatibility.
File "/data0/thw/anaconda3/envs/Denoising2/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py", line 143, in <listcomp>
return [collate(samples, collate_fn_map=collate_fn_map) for samples in transposed] # Backwards compatibility.
File "/data0/thw/anaconda3/envs/Denoising2/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py", line 120, in collate
return collate_fn_map[elem_type](batch, collate_fn_map=collate_fn_map)
File "/data0/thw/anaconda3/envs/Denoising2/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py", line 172, in collate_numpy_array_fn
return collate([torch.as_tensor(b) for b in batch], collate_fn_map=collate_fn_map)
File "/data0/thw/anaconda3/envs/Denoising2/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py", line 120, in collate
return collate_fn_map[elem_type](batch, collate_fn_map=collate_fn_map)
File "/data0/thw/anaconda3/envs/Denoising2/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py", line 162, in collate_tensor_fn
out = elem.new(storage).resize_(len(batch), *list(elem.size()))
RuntimeError: Trying to resize storage that is not resizable
解決
一開始,在博客上看到是num_works設(shè)置有問題,需要設(shè)置為0 或 和顯卡相同的數(shù)
當(dāng)時(shí),還是有點(diǎn)懷疑,因?yàn)橹斑€設(shè)置了16,顯卡是4張,也沒報(bào)錯(cuò),還是嘗試了下,看看問題解決沒,(因?yàn)楫?dāng)時(shí)沒想法了),果然,仍然報(bào)錯(cuò)
后來,看到這篇博客,感謝博主大大(點(diǎn)擊),作者在末尾,提到數(shù)據(jù)維度不統(tǒng)一的問題,于是,就在dataloder中打印了下自己的數(shù)據(jù)維度,結(jié)果發(fā)現(xiàn),輸入的input和label的shape竟然不一樣!?。。?br> 一個(gè)是384*384*1,一個(gè)是256*256*1
要懷疑人生了>_<
然后,改了裁剪的大小,就好了^_^文章來源:http://www.zghlxwxcb.cn/news/detail-433957.html
瑣碎
1 num_works是有多少個(gè)進(jìn)程去加載數(shù)據(jù),與顯卡數(shù)量無關(guān),只不過一般是相等,可以在訓(xùn)練的時(shí)候慢慢增加num_works直到加載數(shù)據(jù)速度無明顯提升
2 數(shù)據(jù)集數(shù)據(jù)集!文章來源地址http://www.zghlxwxcb.cn/news/detail-433957.html
到了這里,關(guān)于RuntimeError: Trying to resize storage that is not resizable的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!