pytorch 如何使用float64訓(xùn)練
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ù),保持文件最小)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python3實(shí)現(xiàn)微型的web服務(wù)器
這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)一個(gè)微型的web服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09Python采用Django開發(fā)自己的博客系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python采用Django開發(fā)自己的博客系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08Python使用Tkinter實(shí)現(xiàn)轉(zhuǎn)盤抽獎(jiǎng)器的步驟詳解
這篇文章主要介紹了Python使用Tkinter實(shí)現(xiàn)轉(zhuǎn)盤抽獎(jiǎng)器,,本文分場景通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01Python實(shí)現(xiàn)復(fù)制圖片到指定文件夾并按順序重新命名
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)將360個(gè)文件夾里的照片,全部復(fù)制到指定的文件夾中,并且按照順序重新命名,感興趣的小伙伴可以了解一下2023-03-03Python算法應(yīng)用實(shí)戰(zhàn)之隊(duì)列詳解
隊(duì)列是一種先進(jìn)先出(First-In-First-Out,F(xiàn)IFO)的數(shù)據(jù)結(jié)構(gòu)。隊(duì)列被用在很多地方,比如提交操作系統(tǒng)執(zhí)行的一系列進(jìn)程、打印任務(wù)池等,一些仿真系統(tǒng)用隊(duì)列來模擬銀行或雜貨店里排隊(duì)的顧客。下面就介紹了Python中隊(duì)列的應(yīng)用實(shí)戰(zhàn),需要的可以參考。2017-02-02python接口自動(dòng)化框架實(shí)戰(zhàn)
這篇文章主要介紹了python接口自動(dòng)化框架實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12圖文詳解Django使用Pycharm連接MySQL數(shù)據(jù)庫
這篇文章主要介紹了Django使用Pycharm連接MySQL數(shù)據(jù)庫的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Python 16進(jìn)制與中文相互轉(zhuǎn)換的實(shí)現(xiàn)方法
今天小編就為大家分享一篇Python 16進(jìn)制與中文相互轉(zhuǎn)換的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07