主頁 > 知識(shí)庫 > pytorch 如何使用float64訓(xùn)練

pytorch 如何使用float64訓(xùn)練

熱門標(biāo)簽:百度AI接口 電話運(yùn)營中心 客戶服務(wù) 硅谷的囚徒呼叫中心 Win7旗艦版 呼叫中心市場(chǎng)需求 語音系統(tǒng) 企業(yè)做大做強(qiáng)

pytorch默認(rèn)使用單精度float32訓(xùn)練模型,

原因在于:

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

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

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

torch.set_default_dtype(torch.float64)

輸入類型可使用

tensor.type(torch.float64)

補(bǔ)充:float32和float64的本質(zhì)區(qū)別

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

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

那么8bits=1bytes,下面是各個(gè)單位的相互轉(zhuǎn)化!

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

數(shù)位的區(qū)別一個(gè)在內(nèi)存中占分別32和64個(gè)bits,也就是4bytes或8bytes數(shù)位越高浮點(diǎn)數(shù)的精度越高它會(huì)影響深度學(xué)習(xí)計(jì)算效率?

float64占用的內(nèi)存是float32的兩倍,是float16的4倍;

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

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

占用內(nèi)存的多少,會(huì)對(duì)系統(tǒng)運(yùn)行效率有嚴(yán)重影響;(因此數(shù)據(jù)集文件都是采用uint8來存在數(shù)據(jù),保持文件最?。?/p>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 解決Pytorch半精度浮點(diǎn)型網(wǎng)絡(luò)訓(xùn)練的問題
  • PyTorch梯度裁剪避免訓(xùn)練loss nan的操作
  • pytorch訓(xùn)練神經(jīng)網(wǎng)絡(luò)爆內(nèi)存的解決方案
  • Pytorch訓(xùn)練模型得到輸出后計(jì)算F1-Score 和AUC的操作
  • pytorch加載預(yù)訓(xùn)練模型與自己模型不匹配的解決方案
  • Pytorch訓(xùn)練網(wǎng)絡(luò)過程中l(wèi)oss突然變?yōu)?的解決方案

標(biāo)簽:長沙 山西 海南 濟(jì)南 喀什 山西 安康 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《pytorch 如何使用float64訓(xùn)練》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266