溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在pytorch中使用float64訓練

發(fā)布時間:2021-05-24 15:35:19 來源:億速云 閱讀:391 作者:Leah 欄目:開發(fā)技術

怎么在pytorch中使用float64訓練?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

原因在于:

使用float16訓練模型,模型效果會有損失,而使用double(float64)會有2倍的內存壓力,且不會帶來太多的精度提升。

本人,最近遇到需要使用double數(shù)據(jù)類型訓練模型的情況,具體實現(xiàn)需要把模型的權重參數(shù)數(shù)據(jù)類型和輸入數(shù)據(jù)類型全部設置為torch.float64即可。

可使用torch的一個函數(shù),輕松地把模型參數(shù)轉化為float64

torch.set_default_dtype(torch.float64)

輸入類型可使用

tensor.type(torch.float64)

補充:float32和float64的本質區(qū)別

首先我們需要知道何為bits和bytes?

bits:名為位數(shù)bytes:為字節(jié)簡單的數(shù)就是MB和G的關系!

那么8bits=1bytes,下面是各個單位的相互轉化!

怎么在pytorch中使用float64訓練

那么float32和float64有什么區(qū)別呢?

數(shù)位的區(qū)別一個在內存中占分別32和64個bits,也就是4bytes或8bytes數(shù)位越高浮點數(shù)的精度越高它會影響深度學習計算效率?

float64占用的內存是float32的兩倍,是float16的4倍;

比如對于CIFAR10數(shù)據(jù)集,如果采用float64來表示,需要60000*32*32*3*8/1024**3=1.4G,光把數(shù)據(jù)集調入內存就需要1.4G;

如果采用float32,只需要0.7G,如果采用float16,只需要0.35G左右;

占用內存的多少,會對系統(tǒng)運行效率有嚴重影響;(因此數(shù)據(jù)集文件都是采用uint8來存在數(shù)據(jù),保持文件最小)

pytorch的優(yōu)點

1.PyTorch是相當簡潔且高效快速的框架;2.設計追求最少的封裝;3.設計符合人類思維,它讓用戶盡可能地專注于實現(xiàn)自己的想法;4.與google的Tensorflow類似,F(xiàn)AIR的支持足以確保PyTorch獲得持續(xù)的開發(fā)更新;5.PyTorch作者親自維護的論壇 供用戶交流和求教問題6.入門簡單

看完上述內容,你們掌握怎么在pytorch中使用float64訓練的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI