日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pytorch DDP加速之gradient accumulation设置

發布時間:2023/12/9 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pytorch DDP加速之gradient accumulation设置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

pytorch DDP

參考:https://zhuanlan.zhihu.com/p/250471767
GPU高效通信算法-Ring Allreduce: https://www.zhihu.com/question/57799212/answer/612786337
梯度累積: https://www.zhihu.com/question/303070254/answer/573037166

gradient accumulation

在梯度累加的情況下,假設一次梯度累加循環有accumulation_steps個step,每次梯度累加循環會進行K次 all_reduce,但事實上,每次梯度累加循環只會有一次 optimizer.step(),即只應用一次參數更新,這意味著在每一次梯度累加循環中,我們其實只要進行一次gradient all_reduce即可滿足要求,有accumulation_steps - 1次all_reduce被浪費了。而每次 all_reduce的時間成本是比較高的。 解決問題的思路在于,對前accumulation_steps - 1次step取消其梯度同步。DDP給我們提供了一個暫時取消梯度同步的context函數 no_sync()(源代碼)。在這個context下,DDP不會進行梯度同步。

for epoch in range(epoches):for j, data in enumerate(train_loader):# 前accumulation_steps - 1個step,不進行梯度同步,累積梯度。if accumulation_count % accumulation_steps != 0:with model.no_sync():loss = model(data)loss = loss/accumulation_stepsloss.backward()else:loss = model(data)loss = loss / accumulation_stepsloss.backward()torch.nn.utils.clip_grad_norm_(model.parameters(), 1)model_optimizer.step()if model_scheduler is not None:model_scheduler.step()model_optimizer.zero_grad()accumulation_count += 1

優雅的寫法(兼容單卡和DDP模式):

from contextlib import nullcontext # 如果python版本小于3.7,則使用下面這個: # from contextlib import suppress as nullcontextif local_rank != -1:model = DDP(model)optimizer.zero_grad() for epoch in range(epoches):for i, data in enumerate(train_loader):# 只在DDP模式下,輪數不是accumulation_steps整數倍的時候使用no_syncmcontext = model.no_sync if local_rank != -1 and accumulation_count % accumulation_steps != 0 else nullcontextwith mcontext():loss = model(data)loss = loss / accumulation_stepsloss.backward()# 輪數為accumulation_steps整數倍的時候,傳播梯度,并更新參數if accumulation_count % accumulation_steps == 0:optimizer.step()if model_scheduler is not None:model_scheduler.step()optimizer.zero_grad()accumulation_count += 1

總結

以上是生活随笔為你收集整理的pytorch DDP加速之gradient accumulation设置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品宾馆在线 | 国产人人看 | 久久r这里只有精品 | 亚洲午夜精品久久久久久人妖 | 成年人在线观看网站 | 免费一级淫片aaa片毛片a级 | 久草超碰在线 | 麻豆www.| 少妇户外露出[11p] | 一级做a免费视频 | 蜜桃tv一区二区三区 | 午夜精品三级久久久有码 | 免费看美女隐私网站 | 欧美成性色 | av国语| 中文字幕在线观看日韩 | 村姑电影在线播放免费观看 | 一区二区三区四区不卡 | 在线观看中文字幕2021 | 热99在线 | 日韩国产传媒 | 精品国产91乱码一区二区三区 | 欧美三个黑人玩3p | 亚洲成人精品在线播放 | 3d毛片| 精精国产xxxx视频在线 | 蜜桃视频成人 | 肉肉视频在线观看 | 中字av在线 | 人人精品久久 | 国产欧美一区在线观看 | 中文有码在线观看 | 免费黄色一区二区 | 日韩精品久久久久久 | 精品人妻一区二区三区四区不卡 | 天天插天天操 | av资源在线 | 国产va在线观看 | 中国免费看的片 | www国产免费| 黄色一级片久久 | 国产a级一级片 | 五月99久久婷婷国产综合亚洲 | 欧美精产国品一二三 | 精品一区二区视频在线观看 | 爽爽窝窝午夜精品一区二区 | 中文字幕理论片 | 亚洲精品97久久中文字幕无码 | 葵司免费一区二区三区四区五区 | 久久影院一区 | 欧美成人h版在线观看 | 阿v天堂网 | 高清黄色一级片 | 99中文字幕 | 海角社区id:1220.7126,10. | 在线观看av片 | 日韩精品人妻一区二区中文字幕 | 亚洲精品av中文字幕在线在线 | 老公吃小头头视频免费观看 | 亚洲精品无码久久久 | 国产午夜精品一区二区 | 在线 日本 制服 中文 欧美 | 杨幂毛片午夜性生毛片 | 国产美女喷水 | 亚洲自偷自偷偷色无码中文 | 日韩经典午夜福利发布 | 少妇高潮一区二区三区四区 | 亚洲一区成人 | 青青草免费公开视频 | julia在线播放88mav | 福利视频在线播放 | 亚洲二区在线播放视频 | 精品久久99 | 国产做a | 秋霞影院av | 美女131爽爽爽做爰视频 | www.久久久久久| 欧美一级黄色网 | 黄色网在线 | 激情文学av | 国产精品免费网站 | 一卡二卡三卡在线观看 | 日韩成人在线免费观看 | 99国产精品99久久久久久粉嫩 | 国产一区网站 | 福利小视频在线播放 | 免费观看黄色小视频 | 久久伊人亚洲 | 欧美亚洲少妇 | 亚洲国产精品久久久久爰色欲 | 宅男午夜在线 | 国产一区二区三区中文字幕 | 亚洲影视一区二区三区 | 大乳女喂男人吃奶视频 | 黄色网战在线观看 | 日韩免费精品 | 嫩草嫩草嫩草嫩草嫩草嫩草 | 国产在线观看网站 | 国产人妖ts重口系列网站观看 |