您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“pytorch要使用float64訓練的原因有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“pytorch要使用float64訓練的原因有哪些”這篇文章吧。
首先我們要知道,pytorch默認使用單精度float32訓練模型,
使用float16訓練模型,模型效果會有損失,而使用double(float64)會有2倍的內存壓力,且不會帶來太多的精度提升。
本人,最近遇到需要使用double數據類型訓練模型的情況,具體實現需要把模型的權重參數數據類型和輸入數據類型全部設置為torch.float64即可。
可使用torch的一個函數,輕松地把模型參數轉化為float64
torch.set_default_dtype(torch.float64)
輸入類型可使用
tensor.type(torch.float64)
補充:float32和float64的本質區別
bits:名為位數bytes:為字節簡單的數就是MB和G的關系!
那么8bits=1bytes
數位的區別一個在內存中占分別32和64個bits,也就是4bytes或8bytes數位越高浮點數的精度越高它會影響深度學習計算效率?
float64占用的內存是float32的兩倍,是float16的4倍;
比如對于CIFAR10數據集,如果采用float64來表示,需要60000*32*32*3*8/1024**3=1.4G,光把數據集調入內存就需要1.4G;
如果采用float32,只需要0.7G,如果采用float16,只需要0.35G左右;
占用內存的多少,會對系統運行效率有嚴重影響;(因此數據集文件都是采用uint8來存在數據,保持文件最小)
以上是“pytorch要使用float64訓練的原因有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。