傳統上,深度神經網絡訓練采用的是IEEE單精度格式,但借助混合精度,可采用半精度進行訓練,同時保持單精度的網絡精度。這種同時采用單精度和半精度表示的技術被稱為混合精度技術。
混合精度訓練的優勢
通過使用Tensor核心,可加速數學密集型運算,如線性和卷積層。
與單精度相比,通過訪問一半的字節來加速內存受限的運算。
降低訓練模型的內存要求,支持更大規模的模型或更大規模的批量訓練。
啟用混合精度包括兩個步驟:移植模型,以適時使用半精度數據類型;以及使用損耗定標,以保留小梯度值。
僅通過添加幾行代碼,TensorFlow、PyTorch和MXNet中的自動混合精確功能就能助力深度學習研究人員和工程師基于NVIDIA Volta和Turing GPU實現高達3倍的AI訓練加速。
將自動混合精度用于主流深度學習框架
TensorFlow
NVIDIA NGC容器注冊表中TensorFlow容器可提供自動混合精度功能。要在容器內啟用此功能,只需設置一個環境變量:
export TF_ENABLE_AUTO_MIXED_PRECISION=1
或者,您也可以在TensorFlow Python腳本中設置環境變量:
os.environ['TF_ENABLE_AUTO_MIXED_PRECISION'] = '1'
自動混合精度使用單一環境變量,在TensorFlow內部應用這兩個步驟,并在必要時進行更細粒度的控制。
PyTorch
GitHub的Apex存儲庫中提供了自動混合精度功能。可將以下兩行代碼添加至當前訓練腳本中以啟用該功能:
model, optimizer = amp.initialize(model, optimizer)
with amp.scale_loss(loss, optimizer) as scaled_loss:scaled_loss.backward()
MXNet
我們正在構建適用于MXNet的自動混合精度功能。您可通過GitHub了解我們的工作進展。可將以下代碼行添加至當前訓練腳本中以啟用該功能:
amp.init()amp.init_trainer(trainer)with amp.scale_loss(loss, trainer) as scaled_loss:autograd.backward(scaled_loss)
-
神經網絡
+關注
關注
42文章
4774瀏覽量
100898 -
gpu
+關注
關注
28文章
4753瀏覽量
129065 -
深度學習
+關注
關注
73文章
5507瀏覽量
121292
原文標題:Tensor核心系列課 | 探究適用于深度學習的自動混合精度
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論