이 코드는 CVPR 2020 Paper Addernet의 데모입니다. 딥 러닝에서 곱셈이 정말로 필요합니까?
우리는 계산 비용을 줄이기 위해 훨씬 저렴한 추가 기능을 제공하기 위해 깊은 신경망, 특히 CNN (Convolutional Neural Networks)에서 대규모 곱셈을 거래하기 위해 Adder Networks (Addernets)를 제시합니다. AdderNets에서는 출력 응답으로 필터와 입력 기능 사이의 L1-Norm 거리를 취합니다. 결과적으로, 제안 된 Addernets는 Convolution 층의 곱셈없이 ImageNet 데이터 세트에서 RESNET-50을 사용하여 74.9% Top-1 정확도 91.7% Top-5 정확도를 달성 할 수 있습니다.
CIFAR-10에서 훈련하려면 python main.py 실행하십시오.

CIFAR-10 및 CIFAR-100 데이터 세트에 대한 분류 결과.
| 모델 | 방법 | Cifar-10 | CIFAR-100 |
|---|---|---|---|
| vgg-small | 앤 | 93.72% | 72.64% |
| PKKD 앤 | 95.03% | 76.94% | |
| 슬랙 앤 | 93.96% | 73.63% | |
| RESNET-20 | 앤 | 92.02% | 67.60% |
| PKKD 앤 | 92.96% | 69.93% | |
| 슬랙 앤 | 92.29% | 68.31% | |
| ShiftAddnet* | 89.32%(160epoch) | - | |
| RESNET-32 | 앤 | 93.01% | 69.17% |
| PKKD 앤 | 93.62% | 72.41% | |
| 슬랙 앤 | 93.24% | 69.83% |
Imagenet 데이터 세트의 분류 결과.
| 모델 | 방법 | 상위 1 ACC | 상위 5 ACC |
|---|---|---|---|
| RESNET-18 | CNN | 69.8% | 89.1% |
| 앤 | 67.0% | 87.6% | |
| PKKD 앤 | 68.8% | 88.6% | |
| 슬랙 앤 | 67.7% | 87.9% | |
| RESNET-50 | CNN | 76.2% | 92.9% |
| 앤 | 74.9% | 91.7% | |
| PKKD 앤 | 76.8% | 93.3% | |
| 슬랙 앤 | 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-Jawn | 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-Jawn | 91.25 | 61.30 | 59.41 | 59.74 | 61.54 | 39.79 |
파스칼 voc에 대한지도 비교.
| 모델 | 등뼈 | 목 | 지도 |
|---|---|---|---|
| 더 빠른 R-CNN | Conv R50 | 설득력 | 79.5 |
| fcos | Conv R50 | 설득력 | 79.1 |
| RETINANET | Conv R50 | 설득력 | 77.3 |
| foveabox | Conv R50 | 설득력 | 76.6 |
| Adder-FCO | 가산기 R50 | 가산기 | 76.5 |
Pytorch/예제에 따라 ImageNet 데이터를 준비 할 수 있습니다.
사전 예방 모델은 Google 드라이브 또는 바이두 클라우드 (액세스 코드 : 126b)에서 사용할 수 있습니다.
CIFAR-10에서 훈련하려면 python main.py 실행하십시오.
Pythenet val 세트에서 평가하려면 python test.py --data_dir 'path/to/imagenet_root/' 실행하십시오. RESNET-50을 사용하여 Imagenet 데이터 세트에서 74.9% 상위 정확도와 91.7% 상위 정확도를 달성합니다.
cifar-10에서 평가하려면 python test.py --dataset cifar10 --model_dir models/ResNet20-AdderNet.pth --data_dir 'path/to/cifar10_root/' 실행하십시오. RESNET-20을 사용하여 CIFAR-10 데이터 세트에서 91.8% 정확도를 달성합니다.
Addernets의 추론 및 훈련은 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이 생길 수 있습니다. 왜냐하면 우리는 당신이 알고있는 것과 다른 방향으로 핵심을 취하고 있기 때문입니다.