pyconv
1.0.0
這是我們的論文「金字塔卷積:重新思考用於視覺識別的捲積神經網路」的 PyTorch 實現。 (請注意,這是 ImageNet 上的圖像識別程式碼。有關語義圖像分割/解析,請參閱此儲存庫:https://github.com/iduta/pyconvsegnet)
在 ImageNet 上訓練的模型可以在這裡找到。
PyConv 能夠在基線上提供改進的識別功能(有關詳細信息,請參閱論文)。
ImageNet 上的準確度(使用預設訓練設定):
網路 | 50層 | 101層 | 152層 |
---|---|---|---|
殘差網路 | 76.12%(模型) | 78.00%(模型) | 78.45%(模型) |
PyConvHGResNet | 78.48 %(模型) | 79.22 %(模型) | 79.36 %(模型) |
PyConvResNet | 77.88 %(模型) | 79.01 %(模型) | 79.52 %(模型) |
使用更複雜的訓練設定可以顯著提高ImageNet 上的準確性(例如,使用額外的資料增強(CutMix)、將bach 大小增加到1024、學習率為0.4、餘弦調度程序超過300 個epoch 並使用混合精度來加速訓練):
網路 | 測試作物:224×224 | 測試作物:320×320 | |
---|---|---|---|
PyConvResNet-50(+增強) | 79.44 | 80.59 | (模型) |
PyConvResNet-101(+增強) | 80.58 | 81.49 | (模型) |
依照官方 PyTorch ImageNet 訓練程式碼安裝 PyTorch 和 ImageNet 資料集。
一個快速的替代方案(無需安裝 PyTorch 和其他深度學習庫)是使用 NVIDIA-Docker,我們使用了這個容器映像。
若要使用 DataParallel 訓練模型(例如,具有 50 層的 PyConvResNet),請執行main.py
;您還需要提供result_path
(保存結果和日誌的目錄路徑)和--data
(ImageNet 資料集的路徑):
result_path=/your/path/to/save/results/and/logs/
mkdir -p ${result_path}
python main.py
--data /your/path/to/ImageNet/dataset/
--result_path ${result_path}
--arch pyconvresnet
--model_depth 50
若要使用多處理分散式資料並行訓練進行訓練,請遵循官方 PyTorch ImageNet 訓練程式碼中的說明。
如果您發現我們的工作有用,請考慮引用:
@article{duta2020pyramidal,
author = {Ionut Cosmin Duta and Li Liu and Fan Zhu and Ling Shao},
title = {Pyramidal Convolution: Rethinking Convolutional Neural Networks for Visual Recognition},
journal = {arXiv preprint arXiv:2006.11538},
year = {2020},
}