ResNet
ResNet adalah pengklasifikasi gambar yang dibangun dari residual block dan skip connection, sehingga jaringan dapat menambahkan jauh lebih banyak lapisan tanpa kehilangan akurasi seperti pada tumpukan konvolusional biasa yang dalam. LibreYOLO mendukungnya untuk satu task: klasifikasi.
- Task
- classify
- Ukuran
- 18, 34, 50, 101 at 224 px
- Instalasi
pip install libreyolo- Tier dukungan
- Didukung, sejak v. Model pendukung yang dapat dilatih: CI dijaga tetap lulus, fitur ditambahkan saat ada kesempatan.
- Lisensi
- Kode Apache-2.0, bobot Apache-2.0. Penggunaan komersial
Instalasi
ResNet tidak memerlukan komponen tambahan opsional. Semua impornya tersedia dalam instalasi dasar.
pip install libreyoloPrediksi
Bobot diunduh dari Hugging Face saat pertama kali digunakan dan disimpan dalam cache lokal.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreResNet50-cls.pt")result = model(SAMPLE_IMAGE, save=True) print(result.probs.top1, result.probs.top1conf)print(result.probs.top5)libreyolo predict model=LibreResNet50-cls.pt source=cat.jpg save=TrueObjek Results yang dikembalikan sama dengan yang dikembalikan setiap family, jadi mengganti
model hanya memerlukan perubahan satu baris. Pengklasifikasi tidak memiliki kotak atau mask:
result.probs menyimpan prediksi seluruh gambar dengan top1, top5,
top1conf, dan top5conf. conf, iou, dan max_det diterima demi kesetaraan API
tetapi tidak berpengaruh karena tidak ada yang perlu diberi ambang batas atau ditekan pada
satu vektor probabilitas. Lihat prediksi untuk sumber,
streaming, dan penanganan hasil.
Varian
Empat kedalaman, semuanya dilatih dan dievaluasi dengan cara yang sama, sehingga pemilihannya
merupakan pertukaran langsung antara jumlah parameter dan akurasi. Task-nya tetap: setiap
ukuran hanya mencakup klasifikasi. Nama berkas bobot berakhir dengan -cls.pt pada setiap
ukuran, dan sufiks itulah yang dibaca factory untuk merutekan ke family ini; argumen
task= tidak diperlukan.
Pelatihan
Fine-tuning dimulai dari backbone ImageNet yang dipublikasikan dan secara otomatis membangun ulang lapisan pengklasifikasi akhir agar sesuai dengan jumlah kelas dataset target.
from libreyolo import LibreYOLO model = LibreYOLO("LibreResNet50-cls.pt")model.train(data="imagenette160", epochs=5)libreyolo train model=LibreResNet50-cls.pt data=imagenette160 epochs=5libreyolo train model=LibreResNet50-cls.pt data=imagenette160 \ epochs=50 device=0,1 batch=-1Jika dibiarkan, pelatih berjalan selama 100 epoch pada lr0=1e-3 dengan AdamW, batch
64, dan early stopping setelah 50 epoch tanpa peningkatan. data menerima root dataset
(train/ dan val/, satu folder per kelas), nama pendek yang dikenal seperti
imagenette160, atau URL .zip. lora=True tidak didukung di sini; meneruskannya akan
memunculkan error karena LoRA di LibreYOLO menargetkan komponen transformer dengan lapisan
nn.Linear, sedangkan ResNet tidak memilikinya.
Lihat pelatihan untuk dataset, augmentasi, multi-GPU, dan logger.
Validasi
val() mengembalikan dictionary dengan key metrics/. Untuk klasifikasi, key tersebut
mencakup akurasi top-1 dan top-5 pada split validasi.
from libreyolo import LibreYOLO model = LibreYOLO("LibreResNet50-cls.pt")metrics = model.val(data="imagenette160") print(metrics["metrics/accuracy_top1"])print(metrics["metrics/accuracy_top5"])libreyolo val model=LibreResNet50-cls.pt data=imagenette160Ekspor
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| classify | classify to ONNX: didukung | classify to TorchScript: didukung | classify to ExecuTorch: didukung | classify to TensorRT: didukung | classify to OpenVINO: didukung | classify to Paddle: tidak didukung | classify to MNN: tidak didukung | classify to RKNN: tidak didukung | classify to ncnn: didukung | classify to TFLite: didukung | classify to CoreML: tidak didukung | classify to Core AI: didukung |
Artefak hasil ekspor dimuat kembali melalui LibreYOLO() berdasarkan sufiks berkasnya,
sehingga berkas .onnx atau .engine berperilaku seperti checkpoint dan mengembalikan
Results yang sama. Ekspor mencantumkan argumen yang diterima setiap
format beserta komponen tambahan yang disediakan beberapa format.
from libreyolo import LibreYOLO model = LibreYOLO("LibreResNet50-cls.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreResNet50-cls.pt format=onnxlibreyolo export model=LibreResNet50-cls.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # Factory merutekan berdasarkan sufiks berkas, sehingga artefak hasil ekspor# dimuat seperti checkpoint lain dan mengembalikan objek Results yang sama.model = LibreYOLO("LibreResNet50-cls.onnx")result = model(SAMPLE_IMAGE) print(result.probs.top1)Checkpoint
Setiap berkas bobot yang dipublikasikan untuk family ini.
| Berkas | Input (piksel) | Lisensi bobot |
|---|---|---|
| classify | ||
| LibreResNet18-cls.pt | 224 | apache-2.0 |
| LibreResNet34-cls.pt | 224 | apache-2.0 |
| LibreResNet50-cls.pt | 224 | apache-2.0 |
| LibreResNet101-cls.pt | 224 | apache-2.0 |
Setiap berkas di atas saat ini tersedia di organisasi LibreYOLO dan diunduh saat pertama kali digunakan.
Lisensi
Periksa lisensi di repositori Hugging Face untuk bobot tertentu yang diunduh. Setiap checkpoint di organisasi LibreYOLO memiliki lisensi, dan lisensinya tidak selalu sama dalam satu family. Repositori tersebut adalah sumber resmi. Ringkasan di bawah menjelaskan ketentuan yang berlaku saat halaman ini terakhir diverifikasi.
Ini adalah deskripsi lisensi yang terlibat, bukan nasihat hukum. Jika jawabannya penting secara komersial, baca sendiri lisensinya dan mintalah nasihat dari penasihat hukum Anda.
- Karya asli
- ResNet, Microsoft Research Asia
- Lisensi upstream
- Apache-2.0
- Sumber upstream
- github.com/huggingface/pytorch-image-models
- Kode LibreYOLO
- MIT
- Bobot
- Apache-2.0, dipublikasikan ulang di huggingface.co/LibreYOLO
- Interpretasi
- Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. It places no obligation on your own application code, and weights you train yourself on your own data are yours. The architecture is the original Microsoft Research Asia design; the pretrained weights LibreYOLO ships are timm's resnet{18,34,50,101}.a1_in1k reproduction (the "ResNet Strikes Back" A1 recipe), trained by Ross Wightman and the timm contributors on ImageNet-1k and licensed Apache-2.0 there. LibreYOLO's module and attribute names mirror timm so the state dict loads unchanged and inference matches bit-identically.
Sitasi
@article{He2015,
author = {Kaiming He and Xiangyu Zhang and Shaoqing Ren and Jian Sun},
title = {Deep Residual Learning for Image Recognition},
journal = {arXiv preprint arXiv:1512.03385},
year = {2015}
}Disalin dari blok sitasi penulis di github.com/KaimingHe/deep-residual-networks#citation.