pytorch:data读取出错:RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension
生活随笔
收集整理的這篇文章主要介紹了
pytorch:data读取出错:RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
???? 在使用Dataloader讀取數據的時候,使用batch_size=1不會出現這個問題。當batch_size>1時, 默認將會使用torch.stack()為你生成一個[batch,x, x, x] 的tensor數據,在使用該函數時需要輸入的兩個tensor維度一樣。
1、注意自己圖像的大小是否resize到相同尺寸。
2、圖像的通道數是否相同,全彩色或全灰度,使用相同的類型。
3、如果是CNN的多標簽分類,標簽長度不同也可以用下面的辦法。
3、在進行目標檢測的時候,我們返回的不僅僅是圖像數據,還有它的gt_box以及gt_label。但是每個圖像的標簽個數不是相同的,所以在使用Dataloader原始的參數時也會報錯。此時可以自己寫一個 collate_fn函數,因為我的返回為圖像、目標框以及類別標簽所以修改如下
def data_collate(batch):gt_box = []gt_label = []imgs = []for info in batch:imgs.append(info[0])gt_box.append(info[1])gt_label.append(info[2])return torch.stack(imgs, 0), gt_box,gt_labeltrain里面調用:DataLoader(data_mine, batch_size=2,collate_fn=data_collate, shuffle=True, num_workers=2)
根據自己重寫的Dataset類的返回值修改上面,得到自己想要的數據。
總結
以上是生活随笔為你收集整理的pytorch:data读取出错:RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工智能为何变成“人工智障”?
- 下一篇: Unreal5 第三人称射击游戏 角色基