[Github项目]基于PyTorch的深度学习网络模型实现
2019 年第 48 篇文章,總第 72 篇文章
本文大約 1500?字,閱讀大約需要 4?分鐘
今天主要分享兩份 Github 項(xiàng)目,都是采用 PyTorch 來實(shí)現(xiàn)深度學(xué)習(xí)網(wǎng)絡(luò)模型,主要是一些常用的模型,包括如 ResNet、DenseNet、ResNext、SENet等,并且也給出相應(yīng)的實(shí)驗(yàn)結(jié)果,包含完整的數(shù)據(jù)處理和載入、模型建立、訓(xùn)練流程搭建,以及測試代碼的實(shí)現(xiàn)。
接下來就開始介紹這兩個項(xiàng)目。
1. PyTorch Image Classification
這份代碼目前有 200+ 星,主要實(shí)現(xiàn)以下的網(wǎng)絡(luò),在 MNIST、CIFAR10、FashionMNIST等數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。
使用方法如下:
然后就是給出作者自己訓(xùn)練的實(shí)驗(yàn)結(jié)果,然后和原論文的實(shí)驗(yàn)結(jié)果的對比,包括在訓(xùn)練設(shè)置上的區(qū)別,然后訓(xùn)練的迭代次數(shù)和訓(xùn)練時間也都分別給出。
之后作者還研究了殘差單元、學(xué)習(xí)率策略以及數(shù)據(jù)增強(qiáng)對分類性能的影響,比如
類似金字塔網(wǎng)絡(luò)的殘差單元設(shè)計(PyramidNet-like residual units)
cosine 函數(shù)的學(xué)習(xí)率遞減策略(Cosine annealing of learning rate)
Cutout
隨機(jī)消除(Random Erasing)
Mixup
降采樣后的預(yù)激活捷徑(Preactivation of shortcuts after downsampling)
實(shí)驗(yàn)結(jié)果表明:
類似金字塔網(wǎng)絡(luò)的殘差單元設(shè)計有幫助,但不適宜搭配 Preactivation of shortcuts after downsampling
基于 cosine 的學(xué)習(xí)率遞減策略提升幅度較小
Cutout、隨機(jī)消除以及 Mixup 效果都很好,其中 Mixup 需要的訓(xùn)練次數(shù)更多
除了這個實(shí)驗(yàn),后面作者還繼續(xù)做了好幾個實(shí)驗(yàn),包括對 batch 大小、初始學(xué)習(xí)率大小、標(biāo)簽平滑等方面做了不少實(shí)驗(yàn),并給出對應(yīng)的實(shí)驗(yàn)結(jié)果。
最后給出了這些網(wǎng)絡(luò)模型的論文、不同訓(xùn)練策略的論文。
這個項(xiàng)目除了實(shí)現(xiàn)對應(yīng)的網(wǎng)絡(luò)模型外,使用不同技巧或者研究基本的 batch 大小、初始學(xué)習(xí)率都是可以給予我們一定啟發(fā),有些技巧是可以應(yīng)用到網(wǎng)絡(luò)中,提高分類性能的。
鏈接:
https://github.com/hysts/pytorch_image_classification
2. PyTorch Image Models
這份代碼目前有 600+ 星,并且最近幾天也有更新,實(shí)現(xiàn)的網(wǎng)絡(luò)更多,包括 DPN、Xception、InceptionResNetV2,以及最近比較火的 EfficientNet。
)
這個項(xiàng)目有以下幾個特點(diǎn):
對所有的模型都做了封裝,也就是都有默認(rèn)的配置接口和 API,包括統(tǒng)一的調(diào)用分類器接口get_classifier、reset_classifier,對特征的前向計算接口forward_features
模型都有一致的預(yù)訓(xùn)練模型加載器,即可以決定是否采用預(yù)訓(xùn)練模型最后一層或者輸入層是否需要從 3 通道變?yōu)?1通道;
訓(xùn)練腳本可以在不同模式下使用,包括分布式、單機(jī)多卡、單機(jī)單卡或者單機(jī) CPU
動態(tài)實(shí)現(xiàn)池化層的操作,包括平均池化(average pooling)、最大池化(max pooling)、平均+最大、或者平均和最大池化結(jié)果連接而不是疊加;
不同訓(xùn)練策略的實(shí)現(xiàn),比如 cosine 學(xué)習(xí)率、隨機(jī)消除、標(biāo)簽平滑等
實(shí)現(xiàn) Mixup
提供一個預(yù)測腳本
作者同樣給出訓(xùn)練的實(shí)驗(yàn)結(jié)果,然后還有使用方法,同樣也是在指定位置準(zhǔn)備好數(shù)據(jù),就可以使用了。
另外,作者還給出 ToDo 列表,會繼續(xù)完善該項(xiàng)目。
鏈接:
https://github.com/rwightman/pytorch-image-models
最后,祝大家端午安康!
歡迎關(guān)注我的微信公眾號--算法猿的成長,或者掃描下方的二維碼,大家一起交流,學(xué)習(xí)和進(jìn)步!
如果覺得不錯,在看、轉(zhuǎn)發(fā)就是對小編的一個支持!
往期精彩推薦
機(jī)器學(xué)習(xí)系列
Github項(xiàng)目 & 資源教程推薦
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎
總結(jié)
以上是生活随笔為你收集整理的[Github项目]基于PyTorch的深度学习网络模型实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机体系结构知识笔记
- 下一篇: 准确率 召回率_吴恩达深度学习笔记(61