รหัสนี้เป็นตัวอย่างของ CVPR 2020 Paper Addernet: เราต้องการการทวีคูณในการเรียนรู้อย่างลึกซึ้งหรือไม่?
เรานำเสนอ Adder Networks (Addernets) เพื่อแลกเปลี่ยนการทวีคูณขนาดใหญ่ในเครือข่ายประสาทลึกโดยเฉพาะเครือข่ายประสาท (CNNs) Convolutional (CNNs) สำหรับการเพิ่มราคาถูกลงเพื่อลดต้นทุนการคำนวณ ใน Addernets เราใช้ระยะทาง L1-norm ระหว่างตัวกรองและคุณสมบัติอินพุตเป็นการตอบสนองเอาต์พุต เป็นผลให้ Addernets ที่เสนอสามารถบรรลุความแม่นยำ 74.9% Top-1 ความแม่นยำ 91.7% ความแม่นยำสูงสุด 5 โดยใช้ RESNET-50 ในชุดข้อมูล ImageNet โดยไม่มีการคูณในเลเยอร์ convolution
เรียกใช้ 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
| แบบอย่าง | วิธี | Top-1 ACC | TOP-5 ACC |
|---|---|---|---|
| resnet-18 | ซีเอ็นเอ็น | 69.8% | 89.1% |
| แอน | 67.0% | 87.6% | |
| pkkd ann | 68.8% | 88.6% | |
| Slac Ann | 67.7% | 87.9% | |
| resnet-50 | ซีเอ็นเอ็น | 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 | ซีเอ็นเอ็น | 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 | ซีเอ็นเอ็น | 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 | ซีเอ็นเอ็น | 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 | ซีเอ็นเอ็น | 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 | ซีเอ็นเอ็น | 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 | ซีเอ็นเอ็น | 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 | ซีเอ็นเอ็น | 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 | |
| Ann-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 | ซีเอ็นเอ็น | 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 | |
| Ann-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
| แบบอย่าง | กระดูกสันหลัง | คอ | แผนที่ |
|---|---|---|---|
| r-cnn เร็วขึ้น | COLN R50 | โน้มน้าว | 79.5 |
| FCO | COLN R50 | โน้มน้าว | 79.1 |
| เรตินัน | COLN R50 | โน้มน้าว | 77.3 |
| foveabox | COLN R50 | โน้มน้าว | 76.6 |
| adder-fcos | adder r50 | ผู้ที่ชื่นชอบ | 76.5 |
คุณสามารถติดตาม pytorch/ตัวอย่างเพื่อเตรียมข้อมูล Imagenet
รุ่นที่ผ่านการฝึกอบรมมีอยู่ใน Google Drive หรือ Baidu Cloud (รหัสการเข้าถึง: 126b)
เรียกใช้ python main.py เพื่อฝึกซ้อม CIFAR-10
เรียกใช้ python test.py --data_dir 'path/to/imagenet_root/' เพื่อประเมินในชุด Imagenet val คุณจะได้รับความแม่นยำสูงสุด 74.9% และความแม่นยำสูงสุด 91.7% ในชุดข้อมูล Imagenet โดยใช้ RESNET-50
เรียกใช้ python test.py --dataset cifar10 --model_dir models/ResNet20-AdderNet.pth --data_dir 'path/to/cifar10_root/' เพื่อประเมินผล CIFAR-10 คุณจะได้รับความแม่นยำ 91.8% ในชุดข้อมูล CIFAR-10 โดยใช้ RESNET-20
การอนุมานและการฝึกอบรมของ 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 ที่ถูกปฏิเสธเพราะเราอาจใช้แกนกลางในทิศทางที่แตกต่างจากที่คุณอาจทราบ