สิ่งนี้แสดงให้เห็นถึงการตัดแต่งกิ่งไม้ที่ใช้ VGG16 ซึ่งจำแนกชุดข้อมูลสุนัข/แมวขนาดเล็ก
สิ่งนี้สามารถลดรันไทม์ CPU ลงได้ X3 และขนาดรุ่นโดย X4
สำหรับรายละเอียดเพิ่มเติมคุณสามารถอ่านโพสต์บล็อก
ในแต่ละขั้นตอนการตัดแต่งกิ่งตัวกรอง 512 จะถูกลบออกจากเครือข่าย
ที่เก็บนี้ใช้ตัวโหลด Pytorch ImageFolder ดังนั้นจึงถือว่าภาพอยู่ในไดเรกทอรีที่แตกต่างกันสำหรับแต่ละหมวดหมู่
รถไฟ
......... สุนัข
......... แมว
ทดสอบ
......... สุนัข
......... แมว
ภาพถูกถ่ายจากที่นี่ แต่คุณควรลองฝึกอบรมเรื่องนี้ด้วยข้อมูลของคุณเองและดูว่ามันใช้งานได้หรือไม่!
การฝึกอบรม: python finetune.py --train
การตัดแต่ง: python finetune.py --prune
เปลี่ยนการตัดแต่งกิ่งที่จะทำในหนึ่งผ่าน ปัจจุบันตัวกรอง 512 ตัวแต่ละตัวถูกตัดแต่งอย่างต่อเนื่อง for layer_index, filter_index in prune_targets: model = prune_vgg16_conv_layer(model, layer_index, filter_index)
สิ่งนี้ไม่มีประสิทธิภาพเนื่องจากการจัดสรรเลเยอร์ใหม่โดยเฉพาะอย่างยิ่งเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์ที่มีพารามิเตอร์จำนวนมากช้า
โดยหลักการนี้สามารถทำได้ในการผ่านครั้งเดียว
เปลี่ยน prune_vgg16_conv_layer เพื่อสนับสนุนสถาปัตยกรรมเพิ่มเติม สิ่งที่ทันทีที่สุดคือ VGG ที่มีบรรทัดฐานแบทช์