Hugging Face發(fā)布PyTorch新庫「Accelerate」:適用于多GPU、TPU、混合精度訓(xùn)練

極市導(dǎo)讀
多數(shù) PyTorch 高級庫都支持分布式訓(xùn)練和混合精度訓(xùn)練,但是它們引入的抽象化往往需要用戶學(xué)習(xí)新的 API 來定制訓(xùn)練循環(huán)。許多 PyTorch 用戶希望完全控制自己的訓(xùn)練循環(huán),但不想編寫和維護訓(xùn)練所需的樣板代碼。Hugging Face 最近發(fā)布的新庫 Accelerate 解決了這個問題。 >>加入極市CV技術(shù)交流群,走在計算機視覺的最前沿

import torchimport torch.nn.functional as Ffrom datasets import load_dataset+ from accelerate import Accelerator+ accelerator = Accelerator()- device = 'cpu'+ device = accelerator.devicemodel = torch.nn.Transformer().to(device)optim = torch.optim.Adam(model.parameters())dataset = load_dataset('my_dataset')data = torch.utils.data.DataLoader(dataset, shuffle=True)+ model, optim, data = accelerator.prepare(model, optim, data)model.train()for epoch in range(10):for source, targets in data:source = source.to(device)targets = targets.to(device)optimizer.zero_grad()output = model(source)loss = F.cross_entropy(output, targets)+ accelerator.backward(loss)- loss.backward()optimizer.step()
import torchimport torch.nn.functional as Ffrom datasets import load_dataset+ from accelerate import Accelerator+ accelerator = Accelerator()- device = 'cpu'+ model = torch.nn.Transformer()- model = torch.nn.Transformer().to(device)optim = torch.optim.Adam(model.parameters())dataset = load_dataset('my_dataset')data = torch.utils.data.DataLoader(dataset, shuffle=True)+ model, optim, data = accelerator.prepare(model, optim, data)model.train()for epoch in range(10):for source, targets in data:- source = source.to(device)- targets = targets.to(device)optimizer.zero_grad()output = model(source)loss = F.cross_entropy(output, targets)+ accelerator.backward(loss)- loss.backward()optimizer.step()
accelerate configaccelerate launch my_script.py --args_to_my_scriptAccelerate 的運作原理
accelerator = Accelerator()model, optim, data = accelerator.prepare(model, optim, data)模型
優(yōu)化器
數(shù)據(jù)加載器
accelerator.backward(loss)CPU
單 GPU
單一節(jié)點多 GPU
多節(jié)點多 GPU
TPU
帶有本地 AMP 的 FP16(路線圖上的頂點)
推薦閱讀
2021-04-21
2021-04-20
2021-04-19

# CV技術(shù)社群邀請函 #
備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測-深圳)
即可申請加入極市目標(biāo)檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學(xué)影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術(shù)交流群
每月大咖直播分享、真實項目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~

評論
圖片
表情
