你所不知道的 Pytorch 大補包(十一):Pytorch 如何實驗 Backpropagation 之 Pytorch AutoGrad 幫我們做了什麼事?
本文接續著上一篇 [你所不知道的 Pytorch 大補包(十):Pytorch 如何實做出 Backpropagation 之什麼是 Backpropagation] 繼續更深入的了解 Pytorch 的底層
keywords: AutoGrad
本文接續著上一篇 [你所不知道的 Pytorch 大補包(十):Pytorch 如何實做出 Backpropagation 之什麼是 Backpropagation] 繼續更深入的了解 Pytorch 的底層
keywords: AutoGrad
常常我們初學 pytroch 的時候都一定會看過下面的程式碼:
1 | for epoch in range(1, epochs+1): |
好不容易跨出第一步,並剛接觸程式碼的你,一看到這坨鬼東西一定心裡有三個問號…(至少我是這樣啦哈哈。
keywords: Backpropagation
本篇筆記主要參考以下網路文章:https://zhuanlan.zhihu.com/p/22252270
整理了一些常用 optimizer 的數學原理,及其重點特色
keywords: optimizer
DDP 的全文是 Distributed Data Parallel,是一種可以透過多機多卡來訓練模型的一種方法,它的本質上就是一個像 Map-Reduce 的東西,把訓練資料、Gradient、Loss 等資訊平均分配給每一個 GPU,達成多工處理的目的
DDP 也可以就看成,提高 batch-size 來提高網路效果
下面我們直接先來看 code 吧:
keywords: DDP
用一串話簡單解釋什麼是 AMP:
在 2017 Nvidia 提出了用於「混合精度的訓練方法」,是一種可使用不同精度來運算 cuda tensor 運算,Nvidia 很貼心的用 python 整理成 apex 套件讓大家方便使用 https://github.com/NVIDIA/apex。而在之後 pytorch 1.6 的更新中,在 Nvidia 的幫忙下,開發了 torch.cuda.amp 函式 (AMP 全稱 Automatic Mixed Precision),使得混合精度訓練可以在 pytorch 中直接引入並使用。
keywords: AMP
你是不是常常覺得 GPU 顯存不夠用?是不是覺得自己太窮買不起好的顯卡、也租不起好的機台?覺得常常因為東卡西卡關就放棄深度學習?
沒關系!接下來有幾招可以在預算不太足的情況下,還是可以讓訓練跑得起來!
keywords: Gradient accumulation
有時候我們在看別人的論文時會發現:常常會有一些「超參數」的出現,像是 ResNet shortcut 進入的權重值等等
這個時候就可以用 Pytorch 提供的 Parameter 和 buffer 來實作,想知道詳細差在哪裡就繼續往下看吧 ~
keywords: Parameter、buffer
在處理 dataset,有時候我們會遇到需要資料前處理、資料擴增…等等對影像處理的步驟:像是希望可以透過旋轉、鏡像做到資料擴增;希望可以利用影像裁切統一輸入影像大小
而 pytorch 也很貼心的提供給我們一個套件使用:torchvision,torchvision 裡面提供了非常多的影像處理方法:像是旋轉、鏡像、裁切
以下這篇文章整理了大部份常用到的函式:Pytorch提供之torchvision data augmentation技巧
keywords: torchvision
設定好訓練 SOP、設定好自定義的資料集後,接下來我們要來設計自己的網路模型,會使用到 Pytorch 中 torch.nn.Module 這個物件
keywords: torch.nn.Module