
การดำเนินการตามสถาปัตยกรรมของ Swin Transformer บทความนี้นำเสนอหม้อแปลงวิสัยทัศน์ใหม่ที่เรียกว่า Swin Transformer ซึ่งทำหน้าที่เป็นกระดูกสันหลังอเนกประสงค์ทั่วไปสำหรับการมองเห็นคอมพิวเตอร์ ความท้าทายในการปรับหม้อแปลงจากภาษาสู่การมองเห็นเกิดขึ้นจากความแตกต่างระหว่างสองโดเมนเช่นการเปลี่ยนแปลงขนาดใหญ่ในระดับของเอนทิตีภาพและความละเอียดสูงของพิกเซลในภาพเมื่อเทียบกับคำในข้อความ เพื่อจัดการกับความแตกต่างเหล่านี้เราเสนอหม้อแปลงลำดับชั้นซึ่งเป็นตัวแทนคำนวณด้วยหน้าต่างที่เลื่อน รูปแบบการขยับของ Windowing ทำให้มีประสิทธิภาพมากขึ้นโดยการ จำกัด การคำนวณด้วยตนเองเพื่อการไม่ใช้หน้าต่างในท้องถิ่นที่ไม่ทับซ้อนในขณะที่ยังช่วยให้การเชื่อมต่อข้ามหน้าต่าง สถาปัตยกรรมแบบลำดับชั้นนี้มีความยืดหยุ่นในการสร้างแบบจำลองในระดับต่าง ๆ และมีความซับซ้อนในการคำนวณเชิงเส้นที่เกี่ยวกับขนาดภาพ คุณภาพของหม้อแปลง Swin เหล่านี้ทำให้เข้ากันได้กับงานการมองเห็นที่หลากหลายรวมถึงการจำแนกภาพ (86.4 ความแม่นยำ TOP-1 บน Imagenet-1K) และงานการทำนายหนาแน่นเช่นการตรวจจับวัตถุ (58.7 กล่อง AP และ 51.1 หน้ากาก AP Coco Test-Dev) ประสิทธิภาพของมันเกินกว่าสถานะก่อนหน้านี้โดยระยะขอบขนาดใหญ่ที่ +2.7 Box AP และ +2.6 Mask AP บน Coco และ +3.2 MIOU บน ADE20K แสดงให้เห็นถึงศักยภาพของโมเดลที่ใช้หม้อแปลง
นี่ ไม่ใช่ ที่เก็บอย่างเป็นทางการของหม้อแปลง Swin ในขณะนี้รหัสอย่างเป็นทางการของผู้เขียนยังไม่พร้อมใช้งาน แต่สามารถพบได้ในภายหลังได้ที่: https://github.com/microsoft/swin-transformer
เครดิตทั้งหมดไปที่ผู้เขียน Ze Liu, Yutong Lin, Yue Cao, Han Hu, Yixuan Wei, Zheng Zhang, Stephen Lin และ Baining Guo
$ pip install swin-transformer-pytorchหรือ (ถ้าคุณโคลนที่เก็บ)
$ pip install -r requirements.txt import torch
from swin_transformer_pytorch import SwinTransformer
net = SwinTransformer (
hidden_dim = 96 ,
layers = ( 2 , 2 , 6 , 2 ),
heads = ( 3 , 6 , 12 , 24 ),
channels = 3 ,
num_classes = 3 ,
head_dim = 32 ,
window_size = 7 ,
downscaling_factors = ( 4 , 2 , 2 , 2 ),
relative_pos_embedding = True
)
dummy_x = torch . randn ( 1 , 3 , 224 , 224 )
logits = net ( dummy_x ) # (1,3)
print ( net )
print ( logits )hidden_dim : intlayers : 4-tuple ของ ints หารด้วย 2heads : 4-tuple ของ intschannels : int.num_classes : inthead_dim : intwindow_size : intdownscaling_factors : 4-tuple ของ intsrelative_pos_embedding : BOOLบางส่วนของรหัสถูกดัดแปลงจากที่เก็บของ VisionTransformer https://github.com/lucidrains/vit-pytorch ซึ่งให้การใช้งานที่สะอาดมาก
@misc { liu2021swin ,
title = { Swin Transformer: Hierarchical Vision Transformer using Shifted Windows } ,
author = { Ze Liu and Yutong Lin and Yue Cao and Han Hu and Yixuan Wei and Zheng Zhang and Stephen Lin and Baining Guo } ,
year = { 2021 } ,
eprint = { 2103.14030 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CV }
}