成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

1行代碼消除PyTorch的CUDA內(nèi)存溢出報錯,這個GitHub項目攬星600+

新聞 前端
多少人用PyTorch“煉丹”時都會被這個bug困擾。一般情況下,你得找出當(dāng)下占顯存的沒用的程序,然后kill掉。現(xiàn)在,有人寫了一個PyTorch wrapper,用一行代碼就能“無痛”消除這個bug。

[[441177]]

本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。

 多少人用PyTorch“煉丹”時都會被這個bug困擾。

1行代碼消除PyTorch的CUDA內(nèi)存溢出報錯,這個GitHub項目攬星600+

一般情況下,你得找出當(dāng)下占顯存的沒用的程序,然后kill掉。

如果不行,還需手動調(diào)整batch size到合適的大小……

有點麻煩。

現(xiàn)在,有人寫了一個PyTorch wrapper,用一行代碼就能“無痛”消除這個bug。

[[441178]]

有多厲害?

相關(guān)項目在GitHub才發(fā)布沒幾天就收獲了600+星。

1行代碼消除PyTorch的CUDA內(nèi)存溢出報錯,這個GitHub項目攬星600+

一行代碼解決內(nèi)存溢出錯誤

軟件包名叫koila,已經(jīng)上傳PyPI,先安裝一下:

  1. pip install koila 

現(xiàn)在,假如你面對這樣一個PyTorch項目:構(gòu)建一個神經(jīng)網(wǎng)絡(luò)來對FashionMNIST數(shù)據(jù)集中的圖像進行分類。

先定義input、label和model:

  1. # A batch of MNIST image 
  2. input = torch.randn(82828
  3.  
  4. # A batch of labels 
  5. label = torch.randn(010, [8]) 
  6.  
  7. class NeuralNetwork(Module): 
  8.     def __init__(self): 
  9.         super(NeuralNetwork, self).__init__() 
  10.         self.flatten = Flatten() 
  11.         self.linear_relu_stack = Sequential( 
  12.             Linear(28 * 28512), 
  13.             ReLU(), 
  14.             Linear(512512), 
  15.             ReLU(), 
  16.             Linear(51210), 
  17.         ) 
  18.  
  19.     def forward(self, x): 
  20.         x = self.flatten(x) 
  21.         logits = self.linear_relu_stack(x) 
  22.         return logits 

然后定義loss函數(shù)、計算輸出和losses。

  1. loss_fn = CrossEntropyLoss() 
  2.  
  3. # Calculate losses 
  4. out = nn(t) 
  5. loss = loss_fn(out, label) 
  6.  
  7. # Backward pass 
  8. nn.zero_grad() 
  9. loss.backward() 

好了,如何使用koila來防止內(nèi)存溢出?

超級簡單!

只需在第一行代碼,也就是把輸入用lazy張量wrap起來,并指定bacth維度——

koila就能自動幫你計算剩余的GPU內(nèi)存并使用正確的batch size了。

在本例中,batch=0,則修改如下:

  1. input = lazy(torch.randn(82828), batch=0

完事兒!就這樣和PyTorch“煉丹”時的OOM報錯說拜拜。

靈感來自TensorFlow的靜態(tài)/懶惰評估

下面就來說說koila背后的工作原理。

“CUDA error: out of memory”這個報錯通常發(fā)生在前向傳遞(forward pass)中,因為這時需要保存很多臨時變量。

koila的靈感來自TensorFlow的靜態(tài)/懶惰評估(static/lazy evaluation)。

它通過構(gòu)建圖,并僅在必要時運行訪問所有相關(guān)信息,來確定模型真正需要多少資源。

而只需計算臨時變量的shape就能計算各變量的內(nèi)存使用情況;而知道了在前向傳遞中使用了多少內(nèi)存,koila也就能自動選擇最佳batch size了。

又是算shape又是算內(nèi)存的,koila聽起來就很慢?

[[441179]]

NO。

即使是像GPT-3這種具有96層的巨大模型,其計算圖中也只有幾百個節(jié)點。

而Koila的算法是在線性時間內(nèi)運行,任何現(xiàn)代計算機都能夠立即處理這樣的圖計算;再加上大部分計算都是單個張量,所以,koila運行起來一點也不慢。

你又會問了,PyTorch Lightning的batch size搜索功能不是也可以解決這個問題嗎?

是的,它也可以。

但作者表示,該功能已深度集成在自己那一套生態(tài)系統(tǒng)中,你必須得用它的DataLoader,從他們的模型中繼承子類,才能訓(xùn)練自己的模型,太麻煩了。

koila靈活又輕量,只需一行代碼就能解決問題,非常“大快人心”有沒有。

不過目前,koila還不適用于分布式數(shù)據(jù)的并行訓(xùn)練方法(DDP),未來才會支持多GPU

1行代碼消除PyTorch的CUDA內(nèi)存溢出報錯,這個GitHub項目攬星600+

以及現(xiàn)在只適用于常見的nn.Module類。

1行代碼消除PyTorch的CUDA內(nèi)存溢出報錯,這個GitHub項目攬星600+

ps. koila作者是一位叫做RenChu Wang的小哥。

1行代碼消除PyTorch的CUDA內(nèi)存溢出報錯,這個GitHub項目攬星600+

項目地址:
https://github.com/rentruewang/koila

 

 

責(zé)任編輯:張燕妮 來源: 量子位
相關(guān)推薦

2020-04-14 15:00:04

PyTorchGitHub檢測

2024-07-10 12:41:40

數(shù)據(jù)訓(xùn)練

2024-11-29 07:00:00

Kimi大模型Mooncake

2020-08-05 17:16:53

GitHub 技術(shù)開源

2021-09-18 11:28:29

GitHub代碼開發(fā)者

2024-11-18 10:25:00

AI模型

2020-11-26 15:48:37

代碼開發(fā)GitHub

2020-12-30 10:35:49

程序員技能開發(fā)者

2020-12-10 10:24:25

AI 數(shù)據(jù)人工智能

2023-07-22 13:47:57

開源項目

2020-12-07 16:14:40

GitHub 技術(shù)開源

2020-08-03 10:42:10

GitHub代碼開發(fā)者

2020-02-20 10:00:04

GitHubPyTorch開發(fā)者

2024-12-16 09:05:00

2021-08-09 15:56:43

機器學(xué)習(xí)人工智能計算機

2021-04-09 16:25:00

GitHub代碼開發(fā)者

2012-07-23 09:58:50

代碼程序員

2021-05-26 08:02:03

ThreadLocal多線程多線程并發(fā)安全

2015-03-30 11:18:50

內(nèi)存管理Android

2019-07-05 15:42:58

GitHub代碼開發(fā)者
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日韩一区二区在线看 | 三级欧美 | 亚洲成人综合社区 | 日韩精品免费看 | 黄色av网站在线观看 | 日韩欧美三级在线 | 国产一级一级国产 | 欧美精品成人一区二区三区四区 | 精品久久久久一区二区国产 | 91视频进入 | 亚洲交性| 久久国产精品网 | 亚洲精品一二三区 | 国产农村妇女毛片精品久久麻豆 | 国产一区二区三区日韩 | 亚洲天堂中文字幕 | 亚洲免费久久久 | 综合自拍| 国产女人与拘做受视频 | 国产999精品久久久影片官网 | av在线免费观看不卡 | 国产成人一区二区三区精 | 不卡一二三区 | www.日韩欧美 | 在线观看中文字幕亚洲 | 免费精品久久久久久中文字幕 | 久久国产成人午夜av影院武则天 | 日韩欧美在线观看 | 老司机午夜性大片 | 特一级毛片 | 成人毛片一区二区三区 | 日韩视频国产 | 久久久久久久久久久久久九 | 成人精品 | 欧美精品在线一区二区三区 | 婷婷丁香在线视频 | 欧美成人a∨高清免费观看 欧美日韩中 | 日韩精品一区二区三区在线观看 | 国产一在线 | 国产二区视频 | 国产做爰|