Found dtype Long but expected Float錯誤通常發生在嘗試將一個數據類型為
Long
的張量傳遞給一個期望數據類型為Float
的函數或操作時。
在PyTorch中,Long
和Float
是兩種常見的數據類型,分別對應于64位整數和32位浮點數。某些函數或操作可能只接受特定數據類型的輸入。例如loss_func函數出現報錯,它需要輸入數據為float
?這時候只需要通過.float將數據類型轉為float即可滿足loss_func的輸入數據類型要求
out_dis = out_dis.float()yb = yb.float()loss_r = loss_func(out_dis, yb)loss_r.backward()
需要注意的是這種轉換可能會導致數據丟失,進而影響后續的計算,如這里的損失函數,因為Long
類型的整數可以表示的范圍比Float
類型的浮點數大。?
?