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

激情久久五月天| 国产精品视频一区二区三区四蜜臂| 尤物视频一区二区| 久草一区二区| 国产伦理一区二区| 一区二区三区福利| 日韩视频在线一区| 色哟哟无码精品一区二区三区| 最近高清中文在线字幕在线观看1| 国产精品女上位| 国产精品日韩欧美一区二区| 中文字幕第2页| 亚洲伦理精品| 久久国产视频网站| 91在线无精精品白丝| 91精品啪在线观看国产爱臀| 欧美在线观看一二区| 韩日视频在线观看| 菠萝菠萝蜜在线视频免费观看| 99国内精品久久| 91精品久久久久久蜜桃| 99re热视频| 亚洲另类自拍| 欧美另类在线播放| 久久99久久99精品免费看小说| 天天躁日日躁狠狠躁欧美| 日韩女优制服丝袜电影| 欧美伦理片在线观看| 少妇淫片在线影院| 亚洲一二三级电影| 亚洲区成人777777精品| 888av在线| 久久久天堂av| 精品在线观看一区二区| 亚洲精品一区二区三区区别| 韩国视频一区二区| 国产在线播放91| www.久久网| 视频精品一区二区| 欧美在线欧美在线| 日韩在线视频免费播放| 亚洲理论在线| 98精品在线视频| 国产精品18p| 亚洲图片在线| 欧美黄色片免费观看| 激情五月婷婷小说| 欧美精品日本| 欧美丰满少妇xxxxx| 免费日韩在线视频| 国产精品xvideos88| 欧美极品少妇全裸体| 久久久久久久久久久网| 亚洲无线视频| 久久久亚洲国产| 国产精品二区一区二区aⅴ| 欧美a级在线| 久久久久久久爱| 日韩污视频在线观看| 99精品99| 国产成人鲁鲁免费视频a| 亚洲午夜在线播放| 免费成人av资源网| 亚洲free性xxxx护士hd| 精品国产999久久久免费| 高清成人免费视频| 久久香蕉综合色| 国产三级在线| 中文字幕日韩av资源站| 精品视频在线观看一区二区| aaa在线播放视频| 狠狠干狠狠久久| 一区二区xxx| 精品国产亚洲一区二区三区大结局 | 在线三级电影| 偷窥少妇高潮呻吟av久久免费| 国产熟女高潮视频| 欧美一区=区三区| 欧美不卡一区二区| 女~淫辱の触手3d动漫| 久久综合成人| 久久久女女女女999久久| √资源天堂中文在线| 免费成人av在线| 官网99热精品| 国产色在线 com| 一区二区三区欧美久久| 免费看日本毛片| 国产欧美在线观看免费| 精品乱人伦小说| 欧美熟妇精品黑人巨大一二三区| 日韩激情图片| 午夜精品理论片| 97av免费视频| 2019国产精品| 国产精品久久成人免费观看| 久草免费在线视频| 91麻豆精品国产自产在线观看一区| 一级黄色片毛片| 日韩一区二区在线免费| 91精品国产成人www| 伊人网视频在线| 91香蕉国产在线观看软件| 亚洲一卡二卡区| 成人免费观看在线观看| 这里是久久伊人| 日韩人妻无码精品综合区| 综合激情网站| 国产精品久久久久77777| 性做久久久久久久| 国产精品午夜久久| 国产男女激情视频| jizz性欧美23| 欧美尺度大的性做爰视频| 天天干天天插天天射| www.日韩在线| www.日本在线视频| 粉嫩一区二区三区在线观看| 国产亚洲美女久久| 日本熟女毛茸茸| 成人天堂资源www在线| 天天操天天干天天玩| 成人免费视频观看| 亚洲天堂av图片| 日韩人妻精品中文字幕| 成人黄色综合网站| 天堂8在线天堂资源bt| 久久伊人久久| 久久久国产精品x99av| a片在线免费观看| 久久影院午夜论| 国产偷人视频免费| 国产精品中文字幕亚洲欧美| 538国产精品视频一区二区| 亚洲国产精品无码久久| 一区二区理论电影在线观看| 黄色a级三级三级三级| 外国成人免费视频| 国产精品专区h在线观看| 国产精品一区二区三区四区色| 欧美午夜片欧美片在线观看| 黄色性生活一级片| 久久国产精品99国产| 蜜桃麻豆www久久国产精品| 九色porny丨入口在线| 亚洲精品国精品久久99热| 国产无遮挡又黄又爽| 不卡一二三区首页| 黄网站欧美内射| 欧美日韩精品一区二区三区在线观看| 欧美高清视频免费观看| 亚洲AV无码国产精品午夜字幕| 一区二区三区资源| 又色又爽又黄18网站| 激情久久久久久久| 久久久www免费人成黑人精品| 乱馆动漫1~6集在线观看| 日韩av有码在线| 天天干,天天干| 亚洲欧洲日本在线| 九九热视频免费| 欧美日韩国产亚洲一区| 精品国产一二| 欧美电影免费观看网站| 日韩中文字幕免费| 国产高清第一页| 午夜精品久久久久久| 自拍视频一区二区| 日日摸夜夜添夜夜添国产精品| 亚洲 国产 日韩 综合一区| 欧美成人免费全部网站| 久久69精品久久久久久久电影好| 六月丁香色婷婷| 91久久香蕉国产日韩欧美9色| 欧美成人短视频| 国产suv精品一区二区三区| www.浪潮av.com| 青青草成人影院| 亚洲最大成人网色| 成人爱爱网址| y97精品国产97久久久久久| 欧美少妇bbw| 欧美视频一区二区| 九九热精品免费视频| 2020国产精品久久精品美国| 91精产国品一二三产区别沈先生| 亚洲狠狠婷婷| 亚洲一区bb| 欧美成人基地| 91啪国产在线| 原纱央莉成人av片| 蜜月aⅴ免费一区二区三区| 男女av在线| 欧美一区二区美女| www.久久久久久久| 亚洲伊人伊色伊影伊综合网| 国产美女免费网站| 成人精品电影在线观看| 乌克兰美女av| 男女精品视频| 国产成a人亚洲精v品在线观看| 免费视频一区三区| 国产精品久久九九| 国产精品久久久久久av公交车| 国产91精品久久久久| 污片在线免费观看| 久久精品2019中文字幕| 国产裸舞福利在线视频合集| 欧美mv日韩mv| 国产喷水福利在线视频| 91黄视频在线| 日韩欧美激情视频| 夜夜亚洲天天久久| 国产精品夜夜夜爽阿娇| 久久人人爽人人爽| 超碰男人的天堂| 国产成人高清视频| 57pao国产成永久免费视频| 久久久久99| 久久久久人妻精品一区三寸| 极品日韩av| 日本男女交配视频| 中文视频一区| 国产一区一区三区| 四季av在线一区二区三区| 日本视频一区二区不卡| 欧美五码在线| 久久99久久精品国产| www.国产精品一区| 波多野结衣久草一区| 91丨精品丨国产| 成人精品aaaa网站| 日本a人精品| 国产自摸综合网| 欧美视频精品| 国产欧美精品xxxx另类| 国产一区二区主播在线| 国产精品6699| av成人免费| 91精品久久久久久久| 久久三级毛片| 成人激情综合网| 欧美中文高清| av色综合网| 六月丁香久久丫| 激情伦成人综合小说| 好吊妞视频这里有精品| 国产精品乱码视频| 国产成人aa在线观看网站站| 国产精品永久入口久久久| 国产香蕉精品| 裸模一区二区三区免费| 久久99国产精品视频| 色噜噜狠狠色综合网| 97精品一区二区| 大地资源网在线观看免费官网| 在线精品视频在线观看高清| 日本人妻伦在线中文字幕| 欧美激情在线| 日韩欧美一区二| 久久精品五月| 午夜视频在线网站| 国产sm精品调教视频网站| yy1111111| 国产三级三级三级精品8ⅰ区| 国产人与禽zoz0性伦| 亚洲精品成人天堂一二三| 日本熟女一区二区| 91久久久免费一区二区| 国产精品久久久久久69| 日韩视频免费观看高清在线视频| 欧美一级特黄aaaaaa| 亚洲日本欧美日韩高观看| 在线播放日本| 久久久噜久噜久久综合| 成人午夜视屏| 成人黄色免费网站在线观看| 国产91精品入| 日韩中文不卡| 国产精品v欧美精品v日本精品动漫| 国产精品后入内射日本在线观看| 麻豆专区一区二区三区四区五区| 久久无码人妻一区二区三区| www激情久久| 国产一区二区播放| 福利一区视频在线观看| 夜夜躁狠狠躁日日躁av| 亚洲精品动漫久久久久| 人人干在线视频| 97精品视频在线观看| 日韩成人精品一区二区三区| 国产精品一区二区免费看| 不卡av一区二区| 日韩中文字幕在线视频观看| 九九国产精品视频| 右手影院亚洲欧美| 亚洲免费观看高清完整| 青娱乐在线免费视频| 精品久久国产字幕高潮| 在线播放毛片| 日韩美女中文字幕| 成人台湾亚洲精品一区二区| 亚洲国产午夜伦理片大全在线观看网站 | 亚洲精品成人久久| 欧美私人网站| 国产成人精品国内自产拍免费看 | 91桃色在线| 亚洲在线www| 日本不卡电影| 国产第一页视频| 99久久免费视频.com| 国产黄色片在线免费观看| 欧美性大战xxxxx久久久| 亚洲av成人精品毛片| 九色精品免费永久在线| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 正在播放日韩精品| 国产伦精品一区二区三区照片91| 久久精品青草| 日韩精品视频一二三| 久久亚洲一级片| 欧美一级特黄视频| 亚洲国产精品久久久久久| av网站网址在线观看| 亚洲www在线| 99久精品视频在线观看视频| 久久久久国产精品熟女影院| av男人天堂一区| 国产成人啪精品午夜在线观看| 欧美一级久久久| av在线麻豆| 亚洲www在线| 午夜久久影院| 亚洲国产综合av| 亚洲乱码精品一二三四区日韩在线| 一级aaaa毛片| 色婷婷综合久久久久| 国产成人精品一区二区三区在线| 色综合久久久久久久久五月| 日韩av成人高清| 亚洲aaa视频| 在线不卡中文字幕播放| 高清全集视频免费在线| 成人激情视频小说免费下载| 91欧美在线| 奇米777在线| 一区二区三区四区不卡视频| 性中国古装videossex| 久久久女女女女999久久| 精品日产乱码久久久久久仙踪林| 免费看毛片的网址| 2023国产精品| 成人免费一级片| 中文字幕欧美日韩精品| 只有精品亚洲| 国产a级黄色大片| 99精品一区二区| 天天爽夜夜爽人人爽| 色综合伊人色综合网| 国产欧美88| 国产精品999视频| 国产无一区二区| 国产老女人乱淫免费| 久久久久久久久久国产| 日韩深夜福利| 五月婷婷六月丁香激情| 亚洲精品一卡二卡| 日韩在线视频第一页| 日本久久久久久久久| 99久久99视频只有精品| 亚洲一区二区三区三州| 疯狂做受xxxx欧美肥白少妇| 国产黄在线观看免费观看不卡| 国产精品一区专区欧美日韩| 国产一区激情| 亚洲码无人客一区二区三区| 91精品国产日韩91久久久久久| 3344国产永久在线观看视频| 日本在线免费观看一区| 国产精品一区二区黑丝| 日本韩国欧美中文字幕| 日韩一区二区欧美| 老司机精品视频在线播放| 亚洲少妇久久久| 亚洲成av人片www| 成人在线播放视频| 国产伦精品一区二区三区照片| 日本不卡视频在线| 久久精品视频日本| 色久欧美在线视频观看| 国产精品毛片av| 老司机久久精品| 日韩欧美国产中文字幕| 成人免费看片| 欧美一级爽aaaaa大片| 丁香激情综合五月| 88av在线视频| 日韩av手机在线看| 国产主播一区| 日韩三级在线观看视频|