このコードは、CVPR 2020 Paper Addernetのデモです。深い学習には乗算が本当に必要ですか?
Adder Networks(Addernets)を提示して、深いニューラルネットワーク、特に畳み込みニューラルネットワーク(CNNS)で大規模な乗算を交換して、計算コストを削減するためのはるかに安価な追加を提供します。 AdderNetsでは、出力応答としてフィルターと入力機能の間のL1-NORM距離を取ります。その結果、提案されたアドダーネットは、畳み込み層に乗算することなく、イメージネットデータセットのResNet-50を使用して、74.9%のTOP-1精度91.7%のトップ5精度を達成できます。
python main.pyを実行して、CIFAR-10でトレーニングします。

CIFAR-10およびCIFAR-100データセットの分類結果。
| モデル | 方法 | CIFAR-10 | CIFAR-100 |
|---|---|---|---|
| vgg-small | アン | 93.72% | 72.64% |
| pkkd ann | 95.03% | 76.94% | |
| Slac Ann | 93.96% | 73.63% | |
| Resnet-20 | アン | 92.02% | 67.60% |
| pkkd ann | 92.96% | 69.93% | |
| Slac Ann | 92.29% | 68.31% | |
| Shiftaddnet* | 89.32%(160EPOCH) | - | |
| ResNet-32 | アン | 93.01% | 69.17% |
| pkkd ann | 93.62% | 72.41% | |
| Slac Ann | 93.24% | 69.83% |
Imagenet Datasetの分類結果。
| モデル | 方法 | Top-1 ACC | トップ5 ACC |
|---|---|---|---|
| Resnet-18 | CNN | 69.8% | 89.1% |
| アン | 67.0% | 87.6% | |
| pkkd ann | 68.8% | 88.6% | |
| Slac Ann | 67.7% | 87.9% | |
| Resnet-50 | CNN | 76.2% | 92.9% |
| アン | 74.9% | 91.7% | |
| pkkd ann | 76.8% | 93.3% | |
| Slac Ann | 75.3% | 92.6% |
*ShiftAddnetはさまざまなトレーニング設定を使用しました。
いくつかのSRデータセットの超解像度の結果。
| 規模 | モデル | 方法 | set5(psnr/ssim) | set14(psnr/ssim) | B100(PSNR/SSIM) | urban100(psnr/ssim) |
|---|---|---|---|---|---|---|
| ×2 | VDSR | CNN | 37.53/0.9587 | 33.03/0.9124 | 31.90/0.8960 | 30.76/0.9140 |
| アン | 37.37/0.9575 | 32.91/0.9112 | 31.82/0.8947 | 30.48/0.9099 | ||
| EDSR | CNN | 38.11/0.9601 | 33.92/0.9195 | 32.32/0.9013 | 32.93/0.9351 | |
| アン | 37.92/0.9589 | 33.82/0.9183 | 32.23/0.9000 | 32.63/0.9309 | ||
| ×3 | VDSR | CNN | 33.66/0.9213 | 29.77/0.8314 | 28.82/0.7976 | 27.14/0.8279 |
| アン | 33.47/0.9151 | 29.62/0.8276 | 28.72/0.7953 | 26.95/0.8189 | ||
| EDSR | CNN | 34.65/0.9282 | 30.52/0.8462 | 29.25/0.8093 | 28.80/0.8653 | |
| アン | 34.35/0.9212 | 30.33/0.8420 | 29.13/0.8068 | 28.54/0.8555 | ||
| ×4 | VDSR | CNN | 31.35/0.8838 | 28.01/0.7674 | 27.29/0.7251 | 25.18/0.7524 |
| アン | 31.27/0.8762 | 27.93/0.7630 | 27.25/0.7229 | 25.09/0.7445 | ||
| EDSR | CNN | 32.46/0.8968 | 28.80/0.7876 | 27.71/0.7420 | 26.64/0.8033 | |
| アン | 32.13/0.8864 | 28.57/0.7800 | 27.58/0.7368 | 26.33/0.7874 |
敵対的な訓練なしのホワイトボックス攻撃下でのCIFAR-10の敵対的な堅牢性。
| モデル | 方法 | クリーン | FGSM | BIM7 | PGD7 | MIM5 | RFGSM5 |
|---|---|---|---|---|---|---|---|
| Resnet-20 | CNN | 92.68 | 16.33 | 0.00 | 0.00 | 0.01 | 0.00 |
| アン | 91.72 | 18.42 | 0.00 | 0.00 | 0.04 | 0.00 | |
| CNN-R | 90.62 | 17.23 | 3.46 | 3.67 | 4.23 | 0.06 | |
| アン-R | 90.95 | 29.93 | 29.30 | 29.72 | 32.25 | 3.38 | |
| Ann-r-awn | 90.55 | 45.93 | 42.62 | 43.39 | 46.52 | 18.36 | |
| ResNet-32 | CNN | 92.78 | 23.55 | 0.00 | 0.01 | 0.10 | 0.00 |
| アン | 92.48 | 35.85 | 0.03 | 0.11 | 1.04 | 0.02 | |
| CNN-R | 91.32 | 20.41 | 5.15 | 5.27 | 6.09 | 0.07 | |
| アン-R | 91.68 | 19.74 | 15.96 | 16.08 | 17.48 | 0.07 | |
| Ann-r-awn | 91.25 | 61.30 | 59.41 | 59.74 | 61.54 | 39.79 |
Pascal VocのMAPの比較。
| モデル | バックボーン | ネック | 地図 |
|---|---|---|---|
| より速いR-CNN | Conv R50 | コンビ | 79.5 |
| FCO | Conv R50 | コンビ | 79.1 |
| レチナネット | Conv R50 | コンビ | 77.3 |
| フォベアボックス | Conv R50 | コンビ | 76.6 |
| Adder-FCOS | Adder R50 | 加算器 | 76.5 |
Pytorch/Examplesに従って、Imagenetデータを準備できます。
事前に保護されたモデルは、GoogleドライブまたはBaiduクラウドで利用できます(アクセスコード:126b)
python main.pyを実行して、CIFAR-10でトレーニングします。
python test.py --data_dir 'path/to/imagenet_root/' imagenet valセットで評価します。 ResNet-50を使用して、Imagenet Datasetで74.9%の最高精度と91.7%のトップ5精度を達成します。
python test.py --dataset cifar10 --model_dir models/ResNet20-AdderNet.pth --data_dir 'path/to/cifar10_root/' cifar-10で評価します。 ResNet-20を使用して、CIFAR-10データセットで91.8%の精度を達成します。
AdderフィルターはCUDA加速なしで実装されるため、アドダーネットの推論とトレーニングは遅いです。 CUDAを書いて、より高い推論速度を達成できます。
@article{AdderNet,
title={AdderNet: Do We Really Need Multiplications in Deep Learning?},
author={Chen, Hanting and Wang, Yunhe and Xu, Chunjing and Shi, Boxin and Xu, Chao and Tian, Qi and Xu, Chang},
journal={CVPR},
year={2020}
}
すべての貢献に感謝します。バックバグフィックスを提供することを計画している場合は、これ以上議論することなくそうしてください。
新しい機能、ユーティリティ関数、または拡張機能をコアに提供する予定の場合は、まず問題を開いて、機能について話し合ってください。議論なしでPRを送信すると、PRが拒否されると、あなたが知っているよりも異なる方向にコアを取っている可能性があるため、最終的に拒否されたPRになります。