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。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- None Found