目錄
此博客用於積累一些優秀的博客和文章,持續更新。
深度學習基礎
數學知識
深度學習知識
自學大禮包
L1與L2損失函數和正則化的區別
英文原文:Differences between L1 and L2 as Loss Function and Regularization
中文翻譯:L1與L2損失函數和正則化的區別
正則化
深度學習中的重要工作
ResNet
- 對ResNet的理解
從多人投票系統的角度解讀,“ResNet的深度並沒有很深”。 - 極深網絡(ResNet/DenseNet): Skip Connection爲何有效及其它
- 爲什麼ResNet和DenseNet可以這麼深?一文詳解殘差塊爲何有助於解決梯度彌散問題。
Normalization
BatchNorm
- 深度學習中 Batch Normalization爲什麼效果好?
知乎上關於BN的一個問題,其中魏秀參的回答第4點,我不壞的回答中的數學解釋非常好。 - Pytorch中的Batch Normalization layer踩坑
特別是關於凍結BN的寫法。
Attention
深度學習應用技巧
網絡調試
- 筆記之Troubleshooting Deep Neural Networks
比較general的網絡調試調參思路介紹,是一篇英文keynote的翻譯版本,原文見Troubleshooting Deep Neural Networks - Andrej Karpathy的一篇推特及其評論區
提供了一些常見的調參思路,還有可能會犯的錯誤。我總結了一下寫了一篇博客:神經網絡常見錯誤(Most Common Neural Net Mistakes) - Common causes of nans during training
stackoverflow上的一篇回答,列出了一些訓練過程中出現的NaN的常見情況,包括學習率,學習率更新策略,損失函數,輸入數據,BatchNorm等多個方面。 - 警惕!損失Loss爲Nan或者超級大的原因
- 談談深度學習中的 Batch_Size
探討batch size對網絡表現的影響。
顯存計算
- 淺談深度學習:如何計算模型以及中間變量的顯存佔用大小
詳細介紹了模型佔用顯存的來源和計算方法。 - 如何在Pytorch中精細化利用顯存
講解了如何利用Pytorch深度學習框架的一些特性,查看當前使用的變量所佔用的顯存大小,以及一些優化工作。 - 再次淺談Pytorch中的顯存利用問題(附完善顯存跟蹤代碼)
博主分析了Pytorch-Memory-Utils這個工具來檢測在訓練過程中關於顯存的變化情況,分析如何正確釋放多餘的顯存。
損失函數
- Pytorch中Balance binary cross entropy損失函數的寫法
在正負樣本不平均的時候有效,該文章提供了一種寫法。
PyTorch
- PyTorch 有哪些坑/bug? - 知乎
高贊回答中提到的常見問題:cudnn的bug(高斯定理的回答),distributed 的坑(KAIZ的回答),數據類型轉換的注意點(小磊的回答),動態圖的坑(陳誠的回答),其他一些總結(御宅暴君的回答)… - pytorch指定層凍結。初始化權重
訓練特定層,凍結其它層
的四個應用場景寫的非常好。 - pytorch 多GPU訓練總結(DataParallel的使用)
兩部分內容:多gpu官方思路有張圖,解決多GPU 負載不均衡的問題做法。 - 一文弄懂Pytorch的DataLoader, DataSet, Sampler之間的關係
寫的非常好,以後寫源碼分析就可以參考這篇的思路。