float32和float64的本質區別

2021-10-16 12:44:18 字數 596 閱讀 3020

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

1. bits:名為位數

2. bytes:為位元組

3. 簡單的數就是mb和g的關係!那麼8bits=1bytes,下面是各個單位的相互轉化!

那麼float32和float64有什麼區別呢?

1. 數字的區別

2. 乙個在記憶體中佔分別32和64個bits,也就是4bytes或8bytes

3. 數字越高浮點數的精度越高

它會影響深度學習計算效率?

float64占用的記憶體是float32的兩倍,是float16的4倍;比如對於cifar10資料集,如果採用float64來表示,需要60000323238/1024**3=1.4g,光把資料集調入記憶體就需要1.4g;如果採用float32,只需要0.7g,如果採用float16,只需要0.35g左右;占用記憶體的多少,會對系統執行效率有嚴重影響;(因此資料集檔案都是採用uint8來存在資料,保持檔案最小)

pytoch 使用float64訓練

pytorch預設使用單精度float32訓練模型,原因在於 使用float16訓練模型,模型效果會有損失,而使用double float64 會有2倍的記憶體壓力,且不會帶來太多的精度提公升。本人,最近遇到需要使用double資料型別訓練模型的情況,具體實現需要把模型的權重引數資料型別和輸入資料型...

pytorch 如何使用float64訓練

pytorch預設使用單精度float32訓練模型,使用float16訓練模型,模型效果會有損失,而使用double float64 會有2倍的記憶體壓力,且不會帶來太多的精度提公升。本人,最近遇到需要使用double資料型別訓練模型的情況,具體實現需要把模型的權重引數資料型別和輸入資料型別全部設定...

學習體會 float32浮點數

float結構如下圖 float的數學計算式如下 其中,符號位 sign,正數為0,負數為1 指數字 exponent,二進位制數轉10進製數,範圍是 127 0000 0000 127 1111 1110 尾數字 base,二進位制數 舉個例子 假設有個浮點數 12.75 我們把它轉換成二進位制 ...