Swin Transformer
Swin Transformer V1: vision transformer phân cấp tính attention bên trong các cửa sổ cục bộ dịch chuyển thay vì trên toàn ảnh. LibreYOLO cung cấp bốn kích thước để phân loại ảnh.
- Tác vụ
- classify
- Kích thước
- t, s, b, l at 224 px
- Cài đặt
pip install libreyolo- Bậc hỗ trợ
- Chỉ suy luận, từ v. Chỉ dự đoán, kiểm định và xuất. Không áp dụng các tính năng huấn luyện.
- Giấy phép
- Mã nguồn Apache-2.0, trọng số MIT. Sử dụng thương mại
Cài đặt
Swin không cần extra tùy chọn. Mọi thành phần mà mô hình import đều có trong bản cài đặt cơ sở.
pip install libreyoloDự đoán
Trọng số được tải về từ Hugging Face trong lần sử dụng đầu tiên và được lưu vào bộ nhớ đệm cục bộ.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreSwint-cls.pt")result = model(SAMPLE_IMAGE, save=True) probs = result.probsprint(probs.top1, probs.top1conf)print(probs.top5, probs.top5conf)libreyolo predict model=LibreSwint-cls.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueBộ phân loại trả về result.probs thay cho result.boxes: top1 và top5 cho chỉ mục lớp đối tượng, còn top1conf và top5conf cho độ tin cậy tương ứng. Mọi kích thước được cố định ở đầu vào 224px vì giai đoạn attention cuối được xây dựng cho độ phân giải đó; dự đoán, xác thực và xuất đều phát sinh lỗi nếu bạn truyền imgsz khác. Xem dự đoán để biết về nguồn, xử lý luồng và kết quả.
Biến thể
Có bốn kích thước từ tiny đến large, được xây dựng từ cùng shifted-window tower và khác nhau ở độ rộng embedding cùng độ sâu giai đoạn. Large được huấn luyện sẵn trên ImageNet-22k rồi tinh chỉnh trên ImageNet-1k; ba kích thước còn lại được huấn luyện trực tiếp trên ImageNet-1k. LibreYOLO chỉ cung cấp họ mô hình này để inference: hỗ trợ dự đoán, xác thực top-1/top-5 kiểu ImageNet và xuất, còn công thức huấn luyện ImageNet upstream chưa được triển khai.
Xác thực
val() chạy trên phần tách kiểu ImageFolder (thư mục có thư mục con train/ và val/, mỗi lớp đối tượng một thư mục) rồi trả về độ chính xác top-1 và top-5.
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwint-cls.pt") # data là thư mục gốc có các phần tách thư mục lớp đối tượng train/ và val/# (bố cục ImageFolder), không phải YAML dataset.metrics = model.val(data="imagenet-1k/") print(metrics["metrics/accuracy_top1"])print(metrics["metrics/accuracy_top5"])libreyolo val model=LibreSwint-cls.pt data=imagenet-1k/Xuất
| Tác vụ | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| classify | classify to ONNX: được hỗ trợ | classify to TorchScript: được hỗ trợ | classify to ExecuTorch: được hỗ trợ | classify to TensorRT: được hỗ trợ | classify to OpenVINO: được hỗ trợ | classify to Paddle: không được hỗ trợ | classify to MNN: không được hỗ trợ | classify to RKNN: không được hỗ trợ | classify to ncnn: được hỗ trợ | classify to TFLite: không được hỗ trợ | classify to CoreML: không được hỗ trợ | classify to Core AI: không được hỗ trợ |
Artifact đã xuất được tải lại qua LibreYOLO() dựa trên hậu tố tệp, vì vậy tệp .onnx hoặc .engine hoạt động như checkpoint và trả về cùng đối tượng Results. Trang Xuất liệt kê các đối số được mọi định dạng chấp nhận và các extra mà một số định dạng bổ sung.
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwint-cls.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreSwint-cls.pt format=onnxlibreyolo export model=LibreSwint-cls.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # Factory định tuyến dựa trên hậu tố tệp, vì vậy artifact đã xuất tải# như mọi checkpoint và trả về cùng đối tượng Results.model = LibreYOLO("LibreSwint-cls.onnx")result = model(SAMPLE_IMAGE) print(result.probs.top1)Checkpoint
Mọi tệp trọng số đã phát hành cho họ mô hình này.
| Tệp | Đầu vào (px) | Giấy phép trọng số |
|---|---|---|
| classify | ||
| LibreSwint-cls.pt | 224 | mit |
| LibreSwins-cls.pt | 224 | mit |
| LibreSwinb-cls.pt | 224 | mit |
| LibreSwinl-cls.pt | 224 | mit |
Mọi tệp ở trên hiện đều có trong tổ chức LibreYOLO và được tải xuống trong lần sử dụng đầu tiên.
Giấy phép
Hãy kiểm tra giấy phép trong repo Hugging Face của trọng số cụ thể mà bạn tải xuống. Mỗi checkpoint trong tổ chức LibreYOLO đều có giấy phép riêng và giấy phép có thể khác nhau trong cùng một họ. Repo đó là nguồn có thẩm quyền; phần tóm tắt dưới đây mô tả các điều khoản áp dụng khi trang này được kiểm chứng lần gần nhất.
Đây là phần mô tả các giấy phép liên quan, không phải tư vấn pháp lý. Nếu câu trả lời có ý nghĩa về mặt thương mại, hãy tự đọc các giấy phép và tham khảo cố vấn của riêng bạn.
- Công trình gốc
- Swin Transformer, Microsoft Research
- Giấy phép thượng nguồn
- MIT
- Nguồn thượng nguồn
- github.com/microsoft/Swin-Transformer
- Mã nguồn LibreYOLO
- MIT
- Trọng số
- MIT, được phát hành lại tại huggingface.co/LibreYOLO
- Diễn giải
- MIT is a permissive license, so these weights can be used in commercial and closed-source products. It asks only that you keep the license text and copyright notice with any copy you redistribute, and it carries no explicit patent grant. LibreYOLO's runtime code for this family is a derived port of the Apache-2.0 timm Swin implementation (Ross Wightman, huggingface/pytorch-image-models), kept parameter-name compatible so the tensors load unchanged; the four released Tiny/Small/Base/Large checkpoints are Microsoft's own MIT-licensed patch-4/window-7 classifiers. Code and weights therefore sit under two different permissive licenses, both of which allow commercial use.
Trích dẫn
@inproceedings{liu2021Swin,
title={Swin Transformer: Hierarchical Vision Transformer using Shifted Windows},
author={Liu, Ze and Lin, Yutong and Cao, Yue and Hu, Han and Wei, Yixuan and Zhang, Zheng and Lin, Stephen and Guo, Baining},
booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
year={2021}
}Được sao chép từ khối trích dẫn của tác giả tại github.com/microsoft/Swin-Transformer#citing-swin-transformer.