pytorch tensor int型除法出現的問題

昨天晚上跑起來一個classification實驗,今天發現訓練loss在降,然而accuracy永遠是0 。。。直覺告訴我evaluation有問題

然後發現自己寫瞭個很愚蠢的bug

accuracy對應的tensor出來是int型的,我用到瞭一個除法取平均。而pytorch裡無論用 / or // 結果都是取整,,accuracy一直就沒有。。

所以轉換成float就沒問題瞭,,低級bug,下不為例

補充:pytorch tensor division/除法

除法的時候要註意數據類型的問題

a = torch.div(torch.tensor([160, 110]), 0.137)

jupyter notebook就會奔潰, 因為torch.tensor([160, 110])是torch.int64數據類型, 而0.137(或者說torch.tensor(0.137))是torch.float32類型.

如果改成下面這樣, 就會順利運行

a = torch.div(torch.tensor([160, 110]).float(), 0.137)

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。