電腦算術

以FP16(半精度:符號1・指數部分5・尾數10位元)訓練類神經網路時容易發生問題,而以將損失值放大數倍後再計算的方法(損失縮放,loss scaling)來因應的是下列何者?

  1. A尾數過長,使記憶體使用量增加
  2. B可表示的範圍狹窄,使微小的梯度變成0
  3. C被當作整數處理,無法表示小數
查看答案與解析

正確答案:B. 可表示的範圍狹窄,使微小的梯度變成0

FP16的指數部分只有5位元,因此可表示的正值約從6 × 10⁻⁸(含非正規化數)到65504,範圍狹窄。訓練中計算出的梯度有許多非常小的值,在FP16中會發生下溢而變成0,使訓練無法進行。損失縮放是先將損失乘以例如1024倍之後再進行反向傳播,把梯度提升到可表示的範圍內,並在更新權重之前還原。尾數為10位元,比FP32短,且也能表示小數。

  • A. 尾數比FP32短,記憶體使用量為一半。
  • B. 正確。為了防止範圍狹窄而使微小的梯度變成0。
  • C. FP16是浮點數格式,可以表示小數。
練習這個領域 前往領域頁面

電腦算術的其他題目

  1. FP16(符號1・指數部分5位元(偏移值15)・尾數10位元)所能表示的最大有限值是多少?
  2. 關於FP8的兩種格式E4M3(指數部分4・尾數3位元)與E5M2(指數部分5・尾數2位元)的使用區分,下列何者是一般作法?
  3. 在AI推論中,將權重從FP32轉換(量化)為INT8的主要優點為下列何者?
  4. 將值域為 −6.35~6.35 的資料,量化為以0為中心的對稱INT8(−127~127)。若比例(scale)定為「最大絕對值 ÷ 127」,則1.0會以哪個整數表示?
  5. 在小型微控制器或DSP中,經常使用定點數而非浮點數運算,其主要理由為下列何者?