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

優化Pytorch模型訓練的小技巧

人工智能 深度學習
在本文中,我將描述并展示4種不同的Pytorch訓練技巧的代碼,這些技巧是我個人發現的,用于改進我的深度學習模型的訓練。

 在本文中,我將描述并展示4種不同的Pytorch訓練技巧的代碼,這些技巧是我個人發現的,用于改進我的深度學習模型的訓練。

[[389579]]

混合精度

在一個常規的訓練循環中,PyTorch以32位精度存儲所有浮點數變量。對于那些在嚴格的約束下訓練模型的人來說,這有時會導致他們的模型占用過多的內存,迫使他們使用更小的模型和更小的批處理大小進行更慢的訓練過程。所以在模型中以16位精度存儲所有變量/數字可以改善并修復大部分這些問題,比如顯著減少模型的內存消耗,加速訓練循環,同時仍然保持模型的性能/精度。

在Pytorch中將所有計算轉換為16位精度非常簡單,只需要幾行代碼。這里是:

 

  1. scaler = torch.cuda.amp.GradScaler() 

上面的方法創建一個梯度縮放標量,以最大程度避免使用fp16進行運算時的梯度下溢。

 

  1. optimizer.zero_grad() 
  2. with torch.cuda.amp.autocast(): 
  3.    output = model(input).to(device) 
  4.    loss = criterion(output, correct_answer).to(device) 
  5. scaler.scale(loss).backward() 
  6. scaler.step(optimizer) 
  7. scaler.update() 

 

當使用loss和優化器進行反向傳播時,您需要使用scale .scale(loss),而不是使用loss.backward()和optimizer.step()。使用scaler.step(optimizer)來更新優化器。這允許你的標量轉換所有的梯度,并在16位精度做所有的計算,最后用scaler.update()來更新縮放標量以使其適應訓練的梯度。

當以16位精度做所有事情時,可能會有一些數值不穩定,導致您可能使用的一些函數不能正常工作。只有某些操作在16位精度下才能正常工作。具體可參考官方的文檔。

進度條

有一個進度條來表示每個階段的訓練完成的百分比是非常有用的。為了獲得進度條,我們將使用tqdm庫。以下是如何下載并導入它:

 

  1. pip install tqdm 
  2. from tqdm import tqdm 

 

在你的訓練和驗證循環中,你必須這樣做:

 

  1. for index, batch in tqdm(enumerate(loader), total = len(loader), position = 0, leave = True): 

訓練和驗證循環添加tqdm代碼后將得到一個進度條,它表示您的模型完成的訓練的百分比。它應該是這樣的:

 

優化Pytorch模型訓練的小技巧

 

在圖中,691代表我的模型需要完成多少批,7:28代表我的模型在691批上的總時間,1.54 it/s代表我的模型在每批上花費的平均時間。

梯度積累

如果您遇到CUDA內存不足的錯誤,這意味著您已經超出了您的計算資源。為了解決這個問題,你可以做幾件事,包括把所有東西都轉換成16位精度,減少模型的批處理大小,更換更小的模型等等。

但是有時切換到16位精度并不能完全解決問題。解決這個問題最直接的方法是減少批處理大小,但是假設您不想減少批處理大小可以使用梯度累積來模擬所需的批大小。請注意,CUDA內存不足問題的另一個解決方案是簡單地使用多個GPU,但這是一個很多人無法使用的選項。

假設你的機器/模型只能支持16的批處理大小,增加它會導致CUDA內存不足錯誤,并且您希望批處理大小為32。梯度累加的工作原理是:以16個批的規模運行模型兩次,將計算出的每個批的梯度累加起來,最后在這兩次前向傳播和梯度累加之后執行一個優化步驟。

要理解梯度積累,重要的是要理解在訓練神經網絡時所做的具體功能。假設你有以下訓練循環:

 

  1. model = model.train() 
  2. for index, batch in enumerate(train_loader): 
  3.     input = batch[0].to(device) 
  4.     correct_answer = batch[1].to(device) 
  5.     optimizer.zero_grad() 
  6.     output = model(input).to(device) 
  7.     loss = criterion(output, correct_answer).to(device) 
  8.     loss.backward() 
  9.     optimizer.step() 

 

看看上面的代碼,需要記住的關鍵是loss.backward()為模型創建并存儲梯度,而optimizer.step()實際上更新權重。在如果在調用優化器之前兩次調用loss.backward()就會對梯度進行累加。下面是如何在PyTorch中實現梯度累加:

 

  1. model = model.train() 
  2. optimizer.zero_grad() 
  3. for index, batch in enumerate(train_loader): 
  4.     input = batch[0].to(device) 
  5.     correct_answer = batch[1].to(device) 
  6.     output = model(input).to(device) 
  7.     loss = criterion(output, correct_answer).to(device) 
  8.     loss.backward() 
  9.     if (index+1) % 2 == 0: 
  10.        optimizer.step() 
  11.        optimizer.zero_grad() 

 

在上面的例子中,我們的機器只能支持16批大小的批量,我們想要32批大小的批量,我們本質上計算2批的梯度,然后更新實際權重。這導致有效批大小為32。

譯者注:梯度累加只是一個折中方案,經過我們的測試,如果對梯度進行累加,那么最后一次loss.backward()的梯度會比前幾次反向傳播的權重高,具體為什么我們也不清楚,哈。雖然有這樣的問題,但是使用這種方式進行訓練還是有效果的。

16位精度的梯度累加非常類似。

 

  1. model = model.train() 
  2. optimizer.zero_grad() 
  3. for index, batch in enumerate(train_loader): 
  4.     input = batch[0].to(device) 
  5.     correct_answer = batch[1].to(device) 
  6.     with torch.cuda.amp.autocast(): 
  7.          output = model(input).to(device) 
  8.          loss = criterion(output, correct_answer).to(device) 
  9.     scaler.scale(loss).backward() 
  10.     if (index+1) % 2 == 0: 
  11.        scaler.step(optimizer) 
  12.        scaler.update() 
  13.        optimizer.zero_grad() 

 

結果評估

在大多數機器學習項目中,人們傾向于手動計算用于評估的指標。盡管計算準確率、精度、召回率和F1等指標并不困難,但在某些情況下,您可能希望擁有這些指標的某些變體,如加權精度、召回率和F1。計算這些可能需要更多的工作,如果你的實現可能不正確、高效、快速且無錯誤地計算所有這些指標,可以使用sklearns classification_report庫。這是一個專門為計算這些指標而設計的庫。

 

  1. from sklearn.metrics import classification_report 
  2. y_pred = [0, 1, 0, 0, 1] 
  3. y_correct = [1, 1, 0, 1, 1]print(classification_report(y_correct, y_pred)) 

 

上面的代碼用于二進制分類。你可以為更多的目的配置這個函數。第一個列表表示模型的預測,第二個列表表示正確數值。上面的代碼將輸出:

 

優化Pytorch模型訓練的小技巧

 

結論

在這篇文章中,我討論了4種pytorch中優化深度神經網絡訓練的方法。16位精度減少內存消耗,梯度積累可以通過模擬使用更大的批大小,tqdm進度條和sklearns的classification_report兩個方便的庫,可以輕松地跟蹤模型的訓練和評估模型的性能。就我個人而言,我總是用上面所有的訓練技巧來訓練我的神經網絡,并且在必要的時候我使用梯度積累。

最后,如果你使用的是pytorch或者是pytorch的初學者,可以使用這個庫:

github/deephub-ai/torch-handle

他會對你有很大的幫助。

責任編輯:華軒 來源: 今日頭條
相關推薦

2023-12-29 14:13:41

PyTorch模型開發

2024-07-25 08:25:35

2020-11-20 10:40:20

PyTorch神經網絡代碼

2021-01-27 10:46:07

Pytorch深度學習模型訓練

2009-06-18 11:12:42

Hibernate S優化

2015-09-15 08:30:23

Android代碼優化

2022-07-04 08:51:43

條件語句JavaScript

2022-11-24 10:34:05

CSS前端

2021-05-07 16:02:54

Python代碼優化

2021-06-16 10:50:16

Python代碼優化

2021-11-10 18:52:42

SQL技巧優化

2024-06-21 08:21:44

2022-03-10 08:01:06

CSS技巧選擇器

2024-10-14 08:19:15

2011-05-10 17:06:05

SEO

2015-09-16 14:47:14

Android性能優化代碼

2022-05-24 14:07:53

OpenFeignSpring開源

2021-07-02 09:45:13

Python優化代碼

2021-09-06 10:25:27

Python代碼優化

2021-11-18 08:20:22

接口索引SQL
點贊
收藏

51CTO技術棧公眾號

韩日一区二区三区| 婷婷激情在线| 久久一区精品| 日韩小视频在线| 亚洲黄色小说在线观看| 色偷偷色偷偷色偷偷在线视频| 国产亚洲综合av| 97伦理在线四区| 国产一区二区视频网站| 欧美在线免费| 一个色综合导航| 韩国三级hd两男一女| 精品久久福利| 欧美日韩国产丝袜另类| 视频一区二区视频| 国产尤物视频在线| 成人小视频在线观看| 国产精品热视频| 黑人一级大毛片| 午夜电影亚洲| 日韩在线中文字| 91视频免费观看网站| 精品国产鲁一鲁****| 在线免费观看日本欧美| 亚洲精品久久久久久久蜜桃臀| 国产1区2区3区在线| 97se亚洲国产综合自在线不卡 | 99精品久久99久久久久| 91中文精品字幕在线视频| 一级黄色在线观看| 国产日韩高清一区二区三区在线| 欧美伦理91i| 极品色av影院| 精品国产美女| 亚洲片国产一区一级在线观看| 久久久久久久久久久久国产精品| 欧美男男gaygay1069| 色婷婷久久久久swag精品| 男人添女荫道口喷水视频| 老司机在线看片网av| 国产人成亚洲第一网站在线播放| 国产精品夜夜夜一区二区三区尤| 国产女人高潮时对白| 久久福利视频一区二区| 日韩免费精品视频| 九九九在线观看| 在线观看视频免费一区二区三区| 久久99视频精品| 婷婷色中文字幕| 亚洲国产精品久久久天堂 | 国产成人精品视频免费| 精品久久精品| 中文字幕无线精品亚洲乱码一区| 波多野结衣片子| 欧洲精品一区| 亚洲精品中文字| 欧美 日韩 成人| 国产精品探花在线观看| 亚洲网站视频福利| 极品蜜桃臀肥臀-x88av| 久久视频精品| 久久精品人人做人人爽| 老司机成人免费视频| 五月婷婷亚洲| 欧美麻豆久久久久久中文 | 成人免费在线| 一区二区在线电影| 日韩中字在线观看| 成人教育av| 欧美视频一二三区| 久久久久久综合网| 亚洲国产视频二区| 亚洲国产欧美一区| 成人午夜福利一区二区| 国产一区日韩| 日韩中文字幕免费看| 放荡的美妇在线播放| 国产精品99一区二区| 久久久综合免费视频| 波多野结衣 久久| 久热成人在线视频| 成人av片网址| 日本一区高清| 亚洲欧洲一区二区三区| 日本免费a视频| 欧洲av不卡| 在线播放亚洲一区| 亚洲精品第二页| 国产一区二区三区四区| 久久香蕉国产线看观看网| 久久久精品视频免费| 日精品一区二区三区| 成人a在线视频| 色香蕉在线视频| 国产精品久久久久久久久动漫| 国产精品无码电影在线观看 | 国产精品久久久久久久久久三级 | 亚洲国产综合自拍| 国产精品探花在线| 欧美丝袜自拍制服另类| 少妇极品熟妇人妻无码| 国产探花一区在线观看| 久久99精品视频一区97| 久久影视中文字幕| 成人妖精视频yjsp地址| 亚洲图片都市激情| 天堂√中文最新版在线| 日韩一区和二区| 精品人伦一区二区三电影| 自拍欧美日韩| 国产精品爱久久久久久久| 亚洲欧美激情国产综合久久久| 国产精品系列在线| 日韩国产欧美亚洲| 视频一区国产| 日韩一中文字幕| 国产三级av片| 国产91在线看| 资源网第一页久久久| 电影一区二区三| 精品国产伦一区二区三区观看体验 | 狠狠狠狠狠狠狠| 成人高清伦理免费影院在线观看| 亚洲欧洲一区二区| 成人在线爆射| 国产丝袜一区二区三区免费视频| 久久这里只有精品免费| 国产综合久久久久久久久久久久| 日韩精品伦理第一区| 国产精品高颜值在线观看| 日韩免费观看高清完整版 | 黄色成人在线播放| 成年人看片网站| 亚洲成人三区| 成人免费午夜电影| 日韩欧美小视频| 欧美日韩在线播放| 日本理论中文字幕| 久久久久久黄| 欧美日韩三区四区| 制服丝袜专区在线| 精品一区二区三区四区| 中国一级特黄毛片| 不卡大黄网站免费看| 蜜臀精品一区二区| 超碰在线成人| 国内揄拍国内精品| 亚洲日本在线播放| 色综合久久综合| 国产肥白大熟妇bbbb视频| 性一交一乱一区二区洋洋av| 久久国产精品-国产精品| 蜜桃视频www网站在线观看| 亚洲成人性视频| 久草精品视频在线观看| 暴力调教一区二区三区| 国内精品视频一区二区三区| 国产一区调教| 97香蕉超级碰碰久久免费软件| 人成网站在线观看| 精品福利在线视频| 在线 丝袜 欧美 日韩 制服| 免费一区视频| 日韩欧美一区二区视频在线播放| 69堂免费精品视频在线播放| 视频一区视频二区国产精品 | 国产亚洲精品久久777777| 国产成人精品亚洲777人妖 | 丝袜诱惑一区二区| 亚洲区中文字幕| 7777久久亚洲中文字幕| 一区二区视频免费在线观看| 理论片大全免费理伦片| 先锋亚洲精品| 一区二区三区观看| 亚洲成人五区| 欧美又大粗又爽又黄大片视频| 免费黄网站在线观看| 欧美三级蜜桃2在线观看| 一级黄色录像视频| 26uuu久久天堂性欧美| 日韩爱爱小视频| 牛牛国产精品| 欧美aaaaa喷水| 亚洲三级在线| 亚州av一区二区| 日p在线观看| 亚洲第一色中文字幕| 精品无码一区二区三区的天堂| 中文字幕在线不卡| 亚洲av人人澡人人爽人人夜夜| 午夜在线观看免费一区| 中文字幕在线观看一区二区三区| 精品视频在线你懂得| 国产精品第七十二页| 天堂av资源在线观看| 亚洲欧美综合图区| 精品国自产在线观看| 欧美性猛xxx| 欧美精品99久久久| 国产精品丝袜在线| 欧美大片免费播放器| 狠狠色2019综合网| 欧美日韩中文在线视频| 亚洲国产精品日韩专区av有中文| 久久99精品久久久久久秒播放器| 日韩免费在线电影| 日本免费久久高清视频| h片在线免费| 在线看日韩欧美| av女名字大全列表| 日韩色在线观看| 久久精品国产亚洲av麻豆蜜芽| 一区二区三区精密机械公司| 秋霞网一区二区三区| www.日韩av| 野花视频免费在线观看| 美女爽到高潮91| 日本成人在线免费视频| 亚洲国产一区二区三区a毛片 | 亚洲一级黄色录像| 91小视频在线| 韩国黄色一级片| 国产综合久久久久久鬼色 | 每日在线观看av| 亚洲精品电影| 在线观看欧美一区| 欧美精品尤物在线观看 | 成人三级做爰av| 精品夜夜嗨av一区二区三区| www.国产区| 国产午夜久久| 成年人午夜免费视频| 欧美特黄一级| 国产91沈先生在线播放| 亚洲视频电影在线| 欧美性受黑人性爽| 久久精品国内一区二区三区水蜜桃 | 亚洲精品乱码久久久久久久久 | 国产精品白丝jk白祙| www欧美在线观看| 91久久久久久久一区二区| 亚洲男人在线| 成人xxxxx| 国产精品一区二区三区av| 91精品久久久久久久久中文字幕| 成人在线视频免费看| 国产精品自产拍在线观看中文| 精品亚洲美女网站| 国产成一区二区| 成人一级视频| 91精品在线观| 麻豆精品久久| 成人免费91在线看| 国产精品x8x8一区二区| 精品产品国产在线不卡| 亚洲理论电影| 先锋影音日韩| 无需播放器亚洲| 国产黄色激情视频| 亚洲乱码久久| 国产三级三级三级看三级| 日本不卡一区二区三区高清视频| www.99在线| 韩国精品在线观看| 国产污在线观看| 久久久久久久久97黄色工厂| 夜夜春很很躁夜夜躁| 国产精品美女久久久久高潮| www.av视频| 姬川优奈aav一区二区| 黄色片中文字幕| 欧美精品久久久久久久久老牛影院| 国产乱码精品一区二区三区精东| 日韩欧美你懂的| 日韩有码电影| 三级精品视频久久久久| 色呦呦在线观看视频| 69视频在线播放| 免费视频成人| 国产一区免费在线| 精品国产99| 国产 欧美 日韩 一区| 久久天堂精品| 亚洲天堂网站在线| 久久亚洲捆绑美女| 国产一二三四区| 日韩欧美成人精品| 国产又大又粗又硬| 日韩精品视频在线免费观看| 成年人在线观看| 久久久久久久久久久久久久久久久久av| 亚洲一区资源| 97人人模人人爽人人少妇| 婷婷五月色综合香五月| 椎名由奈jux491在线播放| 国产欧美日韩一级| 欧美大片久久久| 久久综合色之久久综合| 日本中文字幕免费在线观看| 色婷婷av一区二区三区gif| 国产乱码久久久久| 亚洲午夜精品久久久久久性色 | 91人人爽人人爽人人精88v| 欧美三级午夜理伦三级在线观看| 奇米影视首页 狠狠色丁香婷婷久久综合 | 亚洲精品720p| 黄色网在线免费看| 国产成人精品综合| 久久夜色精品国产噜噜av小说| 亚洲一区在线直播| 先锋影音国产一区| 欧美xxxxx精品| 亚洲欧美日韩国产综合| 中文字幕手机在线视频| 亚洲激情电影中文字幕| 中文字幕资源网在线观看| 国产精品欧美激情在线播放| 亚洲人成网亚洲欧洲无码| 免费高清一区二区三区| 国产乱国产乱300精品| 老司机福利在线观看| 日本黄色一区二区| 日本福利片在线| 午夜精品视频在线| 精品人人人人| 黄网站欧美内射| 成人av在线播放网站| 免费三片在线播放| 日韩一区二区电影| 超碰在线网址| 成人h片在线播放免费网站| 日韩1区2区| 狠狠躁狠狠躁视频专区| 久久九九久精品国产免费直播| www.国产高清| 日韩av资源在线播放| 波多野结衣视频一区二区| 国产在线一区二区三区欧美| 狠狠入ady亚洲精品| 好吊操视频这里只有精品| 亚洲精品v日韩精品| 国产女人18毛片水18精| 操日韩av在线电影| 蜜桃精品视频| 国产欧美精品aaaaaa片| 国产成人综合自拍| 久久精品视频久久| 日韩精品www| 亚洲成a人片| 先锋影音亚洲资源| 国产在线不卡一区| 青青草手机在线观看| 欧美大肚乱孕交hd孕妇| 福利在线导航136| 韩国一区二区三区美女美女秀| 亚洲美女一区| 受虐m奴xxx在线观看| 欧美色窝79yyyycom| 欧美jizzhd69巨大| 97国产超碰| 国产视频一区三区| 亚洲а∨天堂久久精品2021| 欧美亚洲国产一区二区三区| 日本激情在线观看| 99国精产品一二二线| 一区二区三区高清视频在线观看| 亚洲精品视频大全| 精品视频一区二区三区免费| 麻豆视频网站在线观看| 国产高清精品一区| 久久一区欧美| wwwav国产| 日韩精品久久久久久久玫瑰园| 日韩在线短视频| 国内自拍中文字幕| 久久综合精品国产一区二区三区| 国产男人搡女人免费视频| 久久亚洲精品中文字幕冲田杏梨| 在线精品自拍| 国产情侣av自拍| 亚洲另类在线一区| 婷婷亚洲一区二区三区| 91精品国产综合久久香蕉的用户体验 | 亚洲欧美一区二区三区在线观看 | 欧美一区二区三区在线免费观看 | 美国美女黄色片| 日韩一区二区免费在线电影 | 一本到不卡精品视频在线观看| 91在线看片| 精品午夜一区二区| 久久99精品国产91久久来源| 日韩高清精品免费观看| 色噜噜狠狠狠综合曰曰曰88av| 国内视频在线精品| 成人综合久久网| 欧美日韩国产麻豆| 手机av在线播放| 亚洲国产成人不卡| 26uuu国产电影一区二区|