精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美人与牲禽动交com| 国产精品久久久久久免费| 一本久久青青| 欧美在线视频你懂得| 亚洲天堂电影网| 丰满少妇一级片| 久久蜜桃资源一区二区老牛| 久久精品久久久久久| 涩视频在线观看| 成人免费一区| 亚洲亚洲精品在线观看| 欧美日韩精品免费观看视一区二区| 在线观看亚洲国产| 亚洲少妇诱惑| 免费不卡在线观看av| 熟女俱乐部一区二区| 激情不卡一区二区三区视频在线| 天涯成人国产亚洲精品一区av| 亚洲视频sss| 色久视频在线播放| 高清不卡一区二区在线| 国产精品美女久久久久av超清| 日韩av在线天堂| 国产精品99一区二区三| 国产丝袜一区二区三区| 中文字幕永久免费| 日韩大陆av| 在线观看亚洲专区| 自拍日韩亚洲一区在线| 草莓福利社区在线| 中文字幕不卡在线| 快播亚洲色图| 少妇高潮久久久| 国产精品一品视频| 国产欧美久久一区二区| 欧美黑人一区二区| 亚洲激情在线| 欧美大学生性色视频| 潘金莲一级黄色片| 成人羞羞网站| 亚洲石原莉奈一区二区在线观看| www国产视频| 日本精品在线观看| 欧美猛男超大videosgay| 日本爱爱免费视频| 依依综合在线| 欧美日韩亚洲天堂| av免费观看网| 在线免费三级电影网站| 午夜视频在线观看一区二区| av在线com| 好吊日av在线| 亚洲一区二区视频在线观看| av日韩在线看| 激情影院在线| 亚洲高清在线精品| 国产乱淫av片杨贵妃| 日本理论片午伦夜理片在线观看| 亚洲欧美日韩在线| 日韩专区第三页| 婷婷色在线资源| 亚洲一区自拍偷拍| 国产3p露脸普通话对白| 精品丝袜在线| 色婷婷国产精品久久包臀| 看av免费毛片手机播放| 波多野结衣亚洲一二三| 一本到三区不卡视频| 十八禁视频网站在线观看| 午夜精品成人av| 欧美中文字幕一区二区三区| 艹b视频在线观看| 亚洲欧美久久精品| 日韩一区二区三区在线| 在线中文字日产幕| 日韩在线影视| 国产一区二区日韩精品欧美精品| а天堂中文在线资源| 国产精品久久久乱弄| 欧美另类交人妖| 天天插天天操天天干| 久久精品女人天堂| 成人黄色生活片| 免费国产精品视频| 久久免费午夜影院| 一区二区三区久久网| 黄色大片在线| 欧美专区日韩专区| 精品国产aⅴ一区二区三区东京热| 嗯用力啊快一点好舒服小柔久久| 日韩国产高清视频在线| 亚洲天堂最新地址| 狠狠干成人综合网| 欧美亚洲日本黄色| 在线视频1卡二卡三卡| 国产大陆a不卡| 免费99视频| 国产原创在线观看| 狠狠躁夜夜躁久久躁别揉| 久久久久久久久久久久久久久国产| 日韩av综合| 亚洲欧美中文日韩v在线观看| 亚洲一级二级片| 国产一区二区你懂的| 国产欧美一区二区白浆黑人| 女人18毛片水真多18精品| 国产性做久久久久久| 日本老太婆做爰视频| 成人片免费看| 日韩你懂的在线观看| 天天干天天舔天天操| 伊人久久久大香线蕉综合直播| 国产精品国产三级国产专播精品人| 国产成人精品白浆久久69| 久久久久高清精品| 日韩伦理在线免费观看| 亚州欧美在线| 亚洲人成在线观看| 国产在线观看成人| 国产在线播精品第三| 欧日韩一区二区三区| 狼人综合视频| 精品毛片乱码1区2区3区| 91社区视频在线观看| 国产欧美不卡| 国产成人精品自拍| 国产在线观看av| 欧美四级电影网| 久久精品成人av| 亚洲巨乳在线| 国产精品久久久久久免费观看 | 亚洲欧美中文字幕| 久久久久黄色片| 国产伦精品一区二区三区免费迷| 日韩三级电影免费观看| 综合日韩av| 精品国产91久久久久久久妲己 | 亚洲图片欧美色图| 国产男女无遮挡猛进猛出| 日韩激情在线| 国产精品一区二区在线| 国产高清视频免费最新在线| 色欲综合视频天天天| 网站免费在线观看| 在线亚洲观看| 蜜桃麻豆91| 国产美女高潮在线观看| 亚洲国语精品自产拍在线观看| 免费无码毛片一区二区app| 国产一区二区三区在线观看免费视频| 亚洲精品成人a8198a| 精品欧美日韩精品| 中文字幕精品www乱入免费视频| 成人毛片一区二区三区| 欧美激情一区二区三区| 日韩av卡一卡二| 99视频精品全部免费在线视频| 国产精品网站视频| 老司机在线永久免费观看| 欧美另类videos死尸| 97成人资源站| 国产99久久久国产精品免费看| 欧美国产综合在线| 日韩影视在线观看| 国产精品av免费在线观看| 国产色在线 com| 欧美精品免费视频| 日韩欧美中文字幕视频| 成人做爰69片免费看网站| 自拍日韩亚洲一区在线| 精品国产91| 国产91在线视频| 三级外国片在线观看视频| 欧美电影在线免费观看| 久久中文字幕在线观看| 91蜜桃免费观看视频| 91在线视频观看免费| 国产精品x453.com| 国产精品免费一区二区三区四区| 手机av在线| 中文字幕日韩精品在线| 国产av无码专区亚洲av麻豆| 午夜视频在线观看一区二区三区 | 国产伦精品一区二区三区视频痴汉| 自拍偷拍欧美激情| 妖精视频一区二区| 青青草原综合久久大伊人精品优势 | 国产精品久久久久精k8| 91av免费观看| 久久激情视频| 国产在线无码精品| 亚洲系列另类av| 91在线免费视频| 成人直播视频| 久久国产精品视频| 日韩精品123| 欧美一区二区三区的| 中文字幕超碰在线| 一区视频在线播放| 国产精品无码一区二区三区免费| 久久国产免费看| 大肉大捧一进一出好爽视频| 永久91嫩草亚洲精品人人| 久久综合毛片| japanese色系久久精品| 国产精品九九九| 国产精品电影| 欧美日韩高清区| 成人在线观看一区| 亚洲第一视频网站| 国产精品探花视频| 色婷婷精品大在线视频| 豆国产97在线 | 亚洲| 国产精品卡一卡二| 97超碰在线免费观看| 国产成人一区二区精品非洲| 亚欧美在线观看| 免费在线播放第一区高清av| 国产精品视频二| 99久久.com| 亚洲免费久久| 国产一区二区三区91| 国产尤物99| 波多野结衣一区二区三区免费视频| 国产精品久久婷婷六月丁香| 毛片免费看不卡网站| 国产做受69高潮| 日本成人在线播放| 中文字幕在线看视频国产欧美| 免费在线毛片| 亚洲欧美国产精品专区久久| 亚洲人成色777777精品音频| 精品成人a区在线观看| 国产女主播福利| 欧美日韩国产乱码电影| 在线免费观看国产精品| 色婷婷精品久久二区二区蜜臀av| 国产一级做a爱片久久毛片a| 精品久久久国产| 欧美激情亚洲综合| 天天综合网 天天综合色| 日韩精品人妻中文字幕| 亚洲福利视频导航| 国产成人啪精品午夜在线观看| 亚洲综合激情另类小说区| 欧美成人精品激情在线视频| 亚洲精品视频免费观看| 欧美丰满熟妇bbbbbb| 亚洲欧美福利一区二区| 日本青青草视频| 一区二区欧美国产| 国产一级特黄a高潮片| 亚洲影视在线观看| 精品在线播放视频| 精品久久久视频| 男人日女人网站| 色综合久久久久网| 中文字幕在线观看高清| 8x福利精品第一导航| 国产日韩欧美视频在线观看| 欧美一区二区在线观看| 亚洲第一成人av| 日韩电影第一页| 久草在线网址| xxx成人少妇69| 影音先锋中文在线视频| 久久久女女女女999久久| 国内激情视频在线观看| 国产97在线观看| 亚洲国产91视频| 成人免费视频网站| 亚洲制服一区| 一区二区三区在线观看www| 91精品国产91久久久久久黑人| 欧美一级免费在线观看| 激情丁香综合| 伊人久久久久久久久久久久久久| 国产精品草草| 欧美亚洲日本一区二区三区 | 日韩精品一区二区免费| 亚洲一级一区| 亚洲综合在线网站| 激情综合一区二区三区| 丰满少妇xbxb毛片日本| 久久久久久久综合日本| 激情高潮到大叫狂喷水| 亚洲一区二区三区小说| 亚洲图片在线视频| 51午夜精品国产| 天天躁日日躁狠狠躁喷水| 国产一区二区动漫| 91一区二区三区在线| 国产91精品视频在线观看| 欧美aaaaaa| 好看的日韩精品视频在线| 久久精品国产68国产精品亚洲| 国产在线视频在线| 日本欧美一区二区在线观看| 国产精品熟妇一区二区三区四区| 欧美经典一区二区三区| 国产精彩视频在线| 欧美日韩在线播放三区四区| 日本韩国在线观看| 久久精品视频网站| 欧美xx视频| 国产欧美一区二区视频| 99精品全国免费观看视频软件| 无码播放一区二区三区| 韩国女主播成人在线观看| 波多野吉衣中文字幕| 亚洲制服丝袜一区| 国产精品久久久久久在线| 亚洲免费福利视频| 欧美日韩在线视频免费观看| 成人精品久久久| 精品国产91| 那种视频在线观看| 丁香六月久久综合狠狠色| 国产小视频你懂的| 在线精品视频免费播放| 午夜在线视频观看| 欧美高清视频免费观看| 色综合一区二区日本韩国亚洲 | 亚洲成人一区二区在线观看| 一级做a爰片久久毛片16| 亚洲免费伊人电影在线观看av| 超碰97免费在线| 亚洲综合日韩在线| 色综合狠狠操| 美女网站色免费| 国产目拍亚洲精品99久久精品| 中文字幕视频网站| 亚洲国产欧美日韩精品| 女囚岛在线观看| 91久久国产综合久久蜜月精品| 99热国内精品| 亚洲精品永久视频| 国产精品久久久久四虎| 精品无码一区二区三区的天堂| 亚洲欧美国产精品久久久久久久| 色综合亚洲图丝熟| 麻豆视频成人| 久久一区中文字幕| 丰满少妇高潮一区二区| 一本到一区二区三区| 毛片在线能看| 国产成人一区三区| 国产一区二区亚洲| 浓精h攵女乱爱av| 国产精品国模大尺度视频| 国产精品玖玖玖| 久久国产精品影片| 天堂精品久久久久| 国产欧美日韩小视频| 成人黄色在线视频| 黄色大片网站在线观看| 亚洲人午夜精品免费| av在线一区不卡| 日本特级黄色大片| 国产.欧美.日韩| 九九热在线免费观看| 亚洲无限av看| 欧美97人人模人人爽人人喊视频| 成人免费看片视频在线观看| 国产精品888| 日韩精品视频免费看| 亚洲欧美日韩中文视频| 九七影院97影院理论片久久| 综合一区中文字幕| 国产成人av电影在线| 午夜影院在线看| 一区二区在线视频播放| 欧美成人精品午夜一区二区| 国产精品裸体瑜伽视频| 久久久99久久| 国产乱淫片视频| 亚洲2020天天堂在线观看| 国产剧情在线观看一区| 中文字幕一区久久| 精品二区三区线观看| 在线观看a视频| 国产精品v欧美精品v日韩精品| 乱人伦精品视频在线观看| 成人一级黄色大片| 日韩经典中文字幕| 9999精品| 久草资源站在线观看| 18欧美乱大交hd1984| 天天干天天摸天天操| 国产美女高潮久久白浆| 激情自拍一区| 91视频免费看片| 亚洲精品videossex少妇| 久久精品国产福利| 香港三级韩国三级日本三级| 国产精品国产三级国产普通话蜜臀 | 欧美在线播放一区二区| 国产精品一级在线| 日本三级一区二区三区| 久久人人看视频|