精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于PyTorch自動混合精度庫對ResNet50模型進行優化訓練

譯文 精選
人工智能
在這篇文章中,我將專注介紹自動混合精度技術。首先,我將簡要介紹Nvidia的張量核設計;然后,我們一起探討發表在ICLR 2018上的開創性工作——“混合精度訓練”相關論文;最后,我將介紹一個在FashionMNIST數據集上訓練ResNet50模型的簡單示例。

譯者 | 朱先忠

審校 | 重樓

本文將通過一個實戰案例來展示如何借助于PyTorch自動混合精度庫對ResNet50模型進行優化,然后借助少許幾行代碼即可獲得超過兩倍速度的模型訓練效率。

簡介

你是否曾希望你的深度學習模型運行得更快?

一方面,GPU很昂貴。另一方面,數據集龐大,訓練過程似乎永無止境;你可能有一百萬個實驗要進行,還有一個截止日期。所有這些需求都是期待特定形式的訓練加速的極好理由。

但是,我們該選哪一種模型呢?

PyTorchHuggingFaceNvidia已經為模型訓練的性能調優提供了很好的參考,包括異步數據加載、緩沖區檢查點、分布式數據并行化和自動混合精度等等。

在這篇文章中,我將專注介紹自動混合精度技術。首先,我將簡要介紹Nvidia的張量核設計;然后,我們一起探討發表在ICLR 2018上的開創性工作——“混合精度訓練”相關論文;最后,我將介紹一個在FashionMNIST數據集上訓練ResNet50模型的簡單示例。通過這個示例,我們來展示如何在加載雙倍批量數據的同時將訓練速度提高兩倍,而這一結果卻只需要額外編寫三行代碼。

硬件基礎——Nvidia張量核

首先,讓我們回顧一下GPU設計的一些基本原理。英偉達GPU最受歡迎的商業產品之一是Volta系列,例如基于GV100 GPU設計的V100 GPU。因此,我們將圍繞下面的GV100架構進行討論。

對于GV100架構來說,流式多處理器(SM)是計算的核心設計。每個GPU包含6個GPU處理集群(GPC)和S84 SM(或V100的80 SM)。其整體設計如下圖所示:

Volta GV100 GPU設計(每個GPU包含6個GPC,每個GPC包含14個SM;圖像來源:https://arxiv.org/pdf/1803.04014)

對于每個SM,它包含兩種類型的核心:CUDA核心和張量核。CUDA核心是Nvidia于2006年推出的原始設計,是CUDA平臺的重要組成部分。CUDA核心可分為三種類型:FP64核心/單元、FP32核心/單元和Int32核心/單元。每個GV100 SM包含32個FP64核心、64個FP32核心和64個Int32核心。Volta/Turing(2017)系列GPU中引入了張量核,以便與之前的Pascal(2016)系列分離。GV100上的每個SM包含8個張量核。鏈接處給出了V100 GPU的完整詳細信息列表。下面詳細介紹SM設計。

一個英偉達Tesla V100處理組就包含640個張量核(圖像來源:https://arxiv.org/pdf/1903.03640)

為什么選擇張量核?Nvidia張量核專門用于執行通用矩陣乘法(GEMM)和半精度矩陣乘法和累加(HMMA)操作。簡而言之,GEMM以A*B+C的格式執行矩陣運算,HMMA將運算轉換為半精度格式。有關這方面的更詳細的討論可以在鏈接處找到。由于深度學習涉及MMA;所以,張量(Tensor)核心在當今的模型訓練和加速計算中至關重要。

GEMM操作示例(對于HMMA,A和B通常轉換為FP16,而C和D可以是FP16或FP32),圖像來源:https://arxiv.org/pdf/1811.08309

當然,當切換到混合精度訓練時,請務必檢查你使用的GPU的規格。只有最新的GPU系列支持張量核,混合精度訓練只能在這些機器上使用。

數據格式基礎——單精度(FP32)與半精度(FP16)

現在,讓我們仔細看看FP32和FP16格式。FP32和FP16是IEEE格式,使用32位二進制存儲和16位二進制存儲表示浮點數。這兩種格式都包括三個部分:a)符號位;b)指數位;c)尾數位。FP32和FP16分配給指數和尾數的比特數不同,這導致了不同的值范圍和精度。

FP16(IEEE標準)、BF16(Google Brain標準)、FP32(IEEE標準)和TF32(Nvidia標準)之間的區別(圖像來源:https://en.wikipedia.org/wiki/Bfloat16_floating-point_format)

如何將FP16和FP32轉換為真實的值呢?根據IEEE-754標準,FP32的十進制值=(-1)^(符號)×2^(十進制指數-127)×(隱式前導1+十進制尾數),其中127是有偏差的指數值。對于FP16,公式變為(-1)^(符號)×2^(十進制指數-15)×(隱式前導1+十進制尾數),其中15是相應的有偏指數值。你可以在鏈接處查看有偏指數值的更多詳細信息。

從這個意義上講,FP32的取值范圍約為[-212S,21283;]~[-1.7*1e38,1.7*1e38],FP16的取值范圍大約為[-2?,2'8309]=[-32768,32768]。請注意,FP32的十進制指數在0到255之間,我們排除了最大值0xFF,因為它表示NAN。這就解釋了為什么最大的十進制指數是254–127=127。當然,類似的規則也適用于FP16。

對于精度方面,請注意指數和尾數都有助于精度限制(也稱為非規范化,請參閱鏈接處的詳細討論)。因此,FP32可以表示高達2^(-23)*2^(-126)=2^(-149)的精度,FP16可以表示高至2^(10)*2^。

FP32和FP16表示之間的差異帶來了混合精度訓練的關鍵問題,因為深度學習模型的不同層/操作對值范圍和精度或者不敏感或者敏感,所以需要單獨解決。

混合精度訓練

前面,我們已經學習了MMA的硬件基礎知識、張量核的概念以及FP32和FP16之間的關鍵區別。接下來,我們可以進一步討論混合精度訓練的細節。

混合精度訓練的想法最早是在2018年ICLR論文《混合精度訓練》(Mixed Precision Training)中提出的。該論文在訓練過程中將深度學習模型轉換為半精度浮點,而不會損失模型精度或修改超參數。如上所述,由于FP32和FP16之間的關鍵區別在于值范圍和精度,該論文詳細討論了FP16為什么會導致梯度消失,以及如何通過損失縮放來解決這個問題。此外,該論文還提出了使用FP32主權重拷貝和使用FP32進行歸約和向量點積累加等特定操作的技巧。

損失縮放(Loss scaling)。本文給出了一個使用FP32精度訓練Multibox SSD探測器網絡的示例,如下所示。如果不進行任何縮放,FP16梯度的指數范圍≥2^(-24),以下所有值都將變為零,這與FP32相比是不夠的。然而,通過實驗,將梯度簡單地縮放23=8倍,可以使半精度訓練精度恢復到與FP32相匹配的水平。從這個意義上講,作者認為[2^(-27),2^(-24)]之間的額外百分之幾的梯度在訓練過程中仍然很重要,而低于2^(-27)的值并不重要。

在Multibox SSD訓練示例中使用FP32精度的梯度值范圍。請注意,[2^(-27),2^(-24)]之間的值超出了FP16非規范化范圍,僅占總梯度的百分之幾,但在整體訓練中仍然很重要。圖像來源:https://arxiv.org/pdf/1710.03740

解決這種規模差異的方法是借助損失縮放的辦法。根據鏈式法則,縮放損失將確保相同的量將縮放所有梯度。但是請注意,在最終權重更新之前,需要取消縮放梯度。

自動混合精度訓練

Nvidia公司首先開發了名為APEX的PyTorch擴展自動混合精度訓練,然后被PyTorch、TensorFlow、MXNet等主流框架廣泛采用。請參閱鏈接處的Nvidia文檔。為了簡單起見,我們只介紹PyTorch框架中的自動混合精度庫:https://pytorch.org/docs/stable/amp.html.

amp庫可以自動處理大多數混合精度訓練技術,如FP32主權重復制。開發人員只需要進行操作數自動轉換和梯度/損失縮放。

操作數自動轉換:盡管我們提到張量核可以大大提高GEMM操作的性能,但某些操作不適合半精度表示。

amp庫給出了一個符合半精度條件的CUDA操作列表。amp.autocast完全涵蓋了大多數矩陣乘法、卷積和線性激活運算;但是,對于歸約/求和、softmax和損失計算等,這些計算仍然在FP32中執行,因為它們對數據范圍和精度更敏感。

梯度/損失縮放:amp庫提供了自動梯度縮放技術;因此,用戶在訓練過程中不必手動調整縮放。鏈接處可以找到縮放因子的更詳細的算法。

一旦縮放了梯度,就需要在進行梯度剪裁和正則化之前將其縮小。更多細節可以在鏈接處找到。

FashionMNIST訓練示例

torch.amp庫相對易于使用,只需要三行代碼即可將訓練速度提高2倍。

首先,我們從一個非常簡單的任務開始,使用FP32在FashionMNIST數據集(MIT許可證)上訓練ResNet50模型;我們可以看到10個世代的訓練時間為333秒:

ResNet50模型在數據集FashionMNIST上的訓練

小于2**(-24)的梯度與總梯度之比。我們可以看到,FP16將使總梯度的近1/4變為零

評估結果

現在,我們使用amp庫。amp庫只需要三行額外的代碼進行混合精度訓練。我們可以看到訓練在141秒內完成,比FP32訓練快2.36倍,同時達到了相同的精確度、召回率和F1分數。

scaler = torch.cuda.amp.GradScaler()
#開始訓練的代碼
# ...
with torch.autocast(device_type="cuda"):
  #訓練代碼

#封裝損失與優化器
scaler.scale(loss).backward()
scaler.step(optimizer)

scaler.update()

使用amp庫進行訓練

訓練期間的縮放因子(縮放因子僅在第一步發生變化,保持不變。)

最終結果與FP32訓練結果比較

上面代碼的Github鏈接:https://github.com/adoskk/MachineLearningBasics/blob/main/mixed_precision_training/mixed_precision_training.ipynb。

總結

混合精度訓練是加速深度學習模型訓練的一種非常有價值的技術。它不僅加快了浮點運算的速度,還節省了GPU內存,因為訓練批次可以轉換為FP16,從而節省了一半的GPU內存。另外,借助于PyTorch框架中的amp庫,額外的代碼可以減少到僅僅三行,因為權重復制、損失縮放、操作類型轉換等計算都是由該庫內部處理的。

需要注意的是,如果模型權重大小遠大于數據批次的話,混合精度訓練并不能真正解決GPU內存問題。首先,只有模型的某些層被轉換成FP16,而其余層仍在FP32中計算;其次,權重更新需要FP32復制,這仍然需要占用大量的GPU內存;第三,Adam等優化器的參數在訓練過程中占用了大量GPU內存,而混合精度訓練使優化器參數保持不變。從這個意義上說,需要更先進的技術,如DeepSpeed的ZERO算法。

譯者介紹

朱先忠,51CTO社區編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。

原文標題:The Mystery Behind the PyTorch Automatic Mixed Precision Library,作者:Mengliu Zhao

責任編輯:姜華 來源: 51CTO內容精選
相關推薦

2024-08-02 10:20:00

模型訓練

2020-07-13 14:30:35

人工智能機器學習技術

2021-10-29 14:14:26

AI數據人工智能

2020-07-29 15:07:55

開發技能工具

2021-12-06 20:32:41

AI

2021-03-25 15:19:33

深度學習Pytorch技巧

2024-07-25 08:25:35

2024-09-26 00:11:01

2023-02-09 16:32:16

混合精度深度學習

2023-11-02 12:49:00

AI模型

2023-02-16 08:00:00

數據流客戶端開發數據集

2024-04-25 12:55:40

2024-01-10 16:01:28

2024-11-13 14:37:30

2023-02-20 13:50:39

AI 領域建模大數據

2024-08-27 08:38:34

2022-07-13 11:15:20

Graphcore

2023-01-30 08:30:09

Tomcat性能優化

2021-05-09 22:48:40

SQL數據庫變量

2011-06-13 09:38:00

BingiPhoneApp Store
點贊
收藏

51CTO技術棧公眾號

亚洲最大的成人av| 日韩有码欧美| 久久成人免费电影| 中文字幕精品国产| 五月激情婷婷在线| 国产一二区在线观看| 国产成人av资源| 97精品伊人久久久大香线蕉| 中文字幕一区二区久久人妻网站| 国产黄大片在线观看| 91视频.com| 国产精品成人一区| 国产av无码专区亚洲av毛网站 | 久热精品视频在线观看一区| 国产999免费视频| 国产精品13p| 欧美国产激情二区三区| 91视频网页| 一级片在线观看免费| 91视频综合| 精品国产乱码久久久久久蜜臀| 日韩中文字幕在线视频观看| 九色在线播放| 国产一区二区不卡老阿姨| 久久免费成人精品视频| 国产毛片久久久久久久| 欧美啪啪网站| 欧美日韩在线视频一区二区| 欧美日本亚洲| 国产成人精品毛片| 久久久蜜桃一区二区人| 欧美精品性视频| 丰腴饱满的极品熟妇| 亚洲高清国产拍精品26u| 亚洲成人免费看| 法国空姐在线观看免费| 国产黄在线看| 不卡的av在线播放| 成人日韩av在线| 日本黄色一级视频| 在线精品福利| www.亚洲免费视频| 毛茸茸多毛bbb毛多视频| 精品国模一区二区三区欧美| 日韩欧美在线视频| 国产96在线 | 亚洲| 黄色免费在线看| 日本一区二区动态图| 国产精品免费一区二区三区观看 | 亚洲九九精品| 久久这里只有精品99| 实拍女处破www免费看| 四虎国产精品成人免费影视| 好吊成人免视频| 国产妇女馒头高清泬20p多| 国产在线高潮| 国产精品乱人伦一区二区| 蜜桃传媒视频麻豆一区| 囯产精品一品二区三区| 国产精品亚洲一区二区三区在线| 国产精品视频色| 黄色片免费观看视频| 亚洲第一精品影视| 欧美激情在线一区| 粉嫩av性色av蜜臀av网站| 午夜a一级毛片亚洲欧洲| 欧美v国产在线一区二区三区| 日韩在线不卡一区| 成人精品一区二区三区电影| 在线视频中文字幕一区二区| 国产一区二区网| √8天堂资源地址中文在线| 亚洲欧洲日产国码二区| 一区二区三区四区国产| 日本成人在线播放| 中文字幕一区av| 亚洲美女自拍偷拍| 免费观看在线黄色网| 成人欧美一区二区三区黑人麻豆 | 风流老熟女一区二区三区| 国产精品资源在线看| 91在线看网站| 天天干天天爱天天操| 成人国产一区二区三区精品| 国产伦精品一区二区| 日本黄色免费视频| 26uuu亚洲| 色阁综合av| 日本在线人成| 一区二区高清在线| 97超碰人人澡| 电影天堂国产精品| 欧美日韩久久久久久| 五月天婷婷在线观看视频| 精品国产伦一区二区三区观看说明 | 日韩不卡手机在线v区| 国产日韩专区在线| 亚洲国产999| 99国产麻豆精品| 日本一区二区三区四区高清视频| 欧美成熟毛茸茸| 国产精品久久久99| 免费超爽大片黄| 精品亚洲美女网站| 日韩午夜在线影院| 亚洲天堂资源在线| 日韩av在线播放网址| 久久精品国产69国产精品亚洲| 五月天丁香激情| 亚洲尤物影院| 91香蕉嫩草影院入口| 欧日韩在线视频| 欧美国产一区二区在线观看| 三级网在线观看| 在线观看爽视频| 欧美日韩亚洲综合一区二区三区| 日本黄色www| 欧美极品在线观看| 欧美剧在线观看| 国产熟妇一区二区三区四区| 国精产品一区一区三区mba视频 | 欧美一级三级| 久久精品国产一区| 国产午夜精品久久久久| 国产在线精品免费av| 久久久久久九九| 在线电影福利片| 欧洲国产伦久久久久久久| 日本女人性视频| 欧美午夜精彩| 欧美在线观看网址综合| 精品久久国产视频| 国产免费久久精品| 免费国产黄色网址| 久久伊人久久| 日韩在线观看免费高清完整版| 国产成人在线免费观看视频| 精品一区二区在线观看| 奇米影视首页 狠狠色丁香婷婷久久综合| caoporn免费在线| 欧美影视一区二区三区| 日本japanese极品少妇| 91青青国产在线观看精品| 日本老师69xxx| 天天插天天干天天操| 亚洲免费伊人电影| 性猛交ⅹ×××乱大交| 嫩草影视亚洲| 91精品国产91久久久久福利| 99久久久国产精品无码网爆| 国产精品久久久久久久久快鸭| 欧美女人性生活视频| 免费精品一区二区三区在线观看| 宅男66日本亚洲欧美视频| 国产精品久免费的黄网站| 岛国一区二区三区| 永久免费网站视频在线观看| 国产成+人+综合+亚洲欧美| 亚洲视频网站在线观看| 国产精品6666| 成人在线视频首页| 性一交一乱一伧国产女士spa| 国产视频一区二区在线播放| 中文字幕亚洲无线码在线一区| 精品免费囯产一区二区三区| 91在线视频在线| 女人和拘做爰正片视频| 国产精品17p| 久久人人爽人人爽人人片av高请| 六月婷婷中文字幕| 亚洲二区视频在线| 免费黄色三级网站| 在线亚洲国产精品网站| 久久久久久国产精品mv| 美女福利一区二区三区| 亚洲欧美精品suv| 国产一卡二卡三卡| 国产精品久久影院| 久久精品免费网站| 日韩av片子| 91pron在线| 天堂8中文在线| 亚洲国产成人在线播放| 51国产偷自视频区视频| 久久久久9999亚洲精品| www黄色在线| 99精品视频在线| 99在线视频首页| 色操视频在线| 亚洲老头同性xxxxx| 中文在线资源天堂| 亚洲丝袜精品丝袜在线| 国产日韩视频一区| 亚洲综合电影一区二区三区| 日本一区二区三区视频免费看| 国产91在线精品| 色综合久久久久久中文网| 无码国产精品96久久久久| 精品人伦一区二区三区蜜桃免费| 一区二区三区伦理片| 狠狠网亚洲精品| 欧美精品一区二区三区三州| 亚洲人成精品久久久| 国产精品一区二区三区免费视频| 18av在线播放| 亚洲欧美日韩直播| 国产乱淫av片免费| 疯狂蹂躏欧美一区二区精品| 亚洲色图 激情小说| 国产+成+人+亚洲欧洲自线| 成人黄色片视频| 亚洲乱码精品| 欧美xxxx黑人又粗又长密月| 日韩在线影院| 欧美精品在线免费播放| 亚洲 欧美 激情 小说 另类| 欧美日本在线视频| 天天干天天干天天干天天| 自拍偷在线精品自拍偷无码专区| 亚洲一区二区乱码| 激情成人综合网| 99爱视频在线| 欧美日韩精选| 亚洲精品一区二区三区蜜桃久 | 亚洲理论在线| 一区二区三区在线视频看| 久久精品亚洲成在人线av网址| 韩日欧美一区二区| 91亚洲天堂| 在线成人激情视频| 视频一区二区三区国产 | 一区二区三区免费播放| 亚洲人www| 久久观看最新视频| 久久综合99| 精品日韩美女| 另类在线视频| 久久精品国产综合精品| 风间由美性色一区二区三区四区 | 免费成人三级| 国产亚洲福利社区| 荡女精品导航| 国产一区二区视频在线免费观看| 一区二区三区高清在线观看| 亚洲一区中文字幕| 日本综合精品一区| 99久久精品免费看国产四区| 国产成人免费av一区二区午夜 | 久久男人资源视频| 丁香花电影在线观看完整版| 欧美激情视频一区二区| 黄色成人在线网| 91超碰中文字幕久久精品| 免费看男女www网站入口在线| 97在线视频一区| 亚洲欧洲美洲av| 国产精品pans私拍| 久久免费资源| 91在线观看免费网站| 亚洲第一二区| 国产一区二区免费电影| 欧美黑人巨大videos精品| 欧美lavv| 国产精品99久久| 成人在线视频一区二区三区| 激情欧美丁香| 欧美激情精品久久久久久小说| 日日夜夜一区二区| 日本一二三四区视频| 成人综合婷婷国产精品久久免费| 亚洲色偷偷色噜噜狠狠99网| 91蜜桃视频在线| 欧美福利在线视频| 一区二区三区精品| 亚洲黄色激情视频| 欧美日韩国产一级二级| 精品久久在线观看| 国产视频久久久久| 免费**毛片在线| 欧美极品美女视频网站在线观看免费 | 欧美激情在线一区二区| 乱h高h女3p含苞待放| 婷婷久久综合九色国产成人| 高潮毛片又色又爽免费| 在线成人免费视频| 视频二区在线观看| 国产一区二区三区在线播放免费观看 | 欧美寡妇偷汉性猛交| 在线人成日本视频| 成人美女av在线直播| 国产精品一线| 在线精品亚洲一区二区| 国产欧美短视频| 8x8x成人免费视频| 91亚洲精品久久久蜜桃网站| 亚洲区一区二区三| 无吗不卡中文字幕| 国产又爽又黄免费软件| 国产丝袜一区二区三区免费视频| 欧美天天影院| 久久久亚洲影院你懂的| 美女视频一区| 欧美日韩电影一区二区三区| 亚洲中无吗在线| 久久久久免费精品| 大胆亚洲人体视频| 波多野结衣亚洲一区二区| 欧美丝袜一区二区| 亚洲黄色在线播放| 日韩三级影视基地| 超碰这里只有精品| 欧美日韩精品免费在线观看视频| 亚洲最新色图| 污版视频在线观看| 国产日韩欧美a| 亚洲精品视频在线观看免费视频| 欧美精品久久99| 福利在线午夜| 日韩暖暖在线视频| 欧美人体视频| 18禁裸男晨勃露j毛免费观看| 美女网站色91| 欧美a在线播放| 91高清视频免费看| 天天操天天舔天天干| 欧美精品videos性欧美| 国产精品亚洲四区在线观看| 日韩三级在线播放| 美女精品一区| 国产精品无码在线| 图片区小说区国产精品视频| 国产精品自产拍| 久久精品视频va| 精品女同一区二区三区在线观看| 欧美一区国产一区| 久久精品1区| 国产精品815.cc红桃| 精品日本美女福利在线观看| 亚洲男人天堂久久| 欧美大片免费看| 国产精品xxx在线观看| 九九久久九九久久| 国产成人精品影院| 久久国产精品波多野结衣av| 欧美一区二区三区色| www.在线视频| 成人av片网址| 精品av久久久久电影| 久久久国产精品无码| 午夜成人在线视频| 你懂的在线观看视频网站| 97av视频在线| 国产a久久精品一区二区三区| 日韩少妇内射免费播放18禁裸乳| 97se亚洲国产综合自在线观| 久草视频在线观| 亚洲天堂av电影| 亚洲久草在线| 女人床在线观看| av午夜精品一区二区三区| 欧美日韩一二三四区| 亚洲天堂av网| www 久久久| av在线播放天堂| 久久久一区二区三区捆绑**| 黄色片视频免费| 日韩中文字幕在线播放| 少妇精品在线| 日韩少妇内射免费播放18禁裸乳| 久久久午夜精品| 在线观看免费高清视频| 久久久久www| 国产精品成人自拍| 成人午夜视频免费在线观看| 国产午夜三级一区二区三| 国产精品嫩草影院桃色| 欧美激情免费在线| 久久91精品| 不卡中文字幕在线观看| 亚洲国产日韩精品| 国产视频在线看| 亚洲影视九九影院在线观看| 中日韩男男gay无套| 日韩亚洲欧美中文字幕| 精品噜噜噜噜久久久久久久久试看| 日本不卡1234视频| 亚洲三区四区| 99精品视频免费在线观看| 中文在线观看免费高清| 久久久中精品2020中文| 超碰成人久久| 日本精品一二三| 欧美色图在线观看| 啦啦啦中文在线观看日本| 欧美精品中文字幕一区二区| 九色|91porny| 亚洲va在线观看| 欧美黑人视频一区| 成人在线免费观看网站| 亚洲少妇一区二区三区|