Hızlı Dağıtım için YOLO26 Modelinin TorchScript'e Aktarılması#
PyTorch TorchScript'i kullanımdan kaldırdı ve özelliklerini kademeli olarak kaldırıyor. Yeni mobil ve uç cihaz dağıtımları için desteklenen ExecuTorch entegrasyonunu kullan. Ultralytics, eski C++ uyumluluğu için normal TorchScript dışa aktarımını korur.
Python olmadan C++ ortamlarında bilgisayarlı görü modellerini dağıtmak taşınabilir bir serileştirilmiş temsil gerektirir. TorchScript, eski LibTorch uygulamaları için bu uyumluluğu sağlar.
Ultralytics YOLO26 modellerini platformlar arası uyumluluk ve kolaylaştırılmış dağıtım için serileştirmek üzere TorchScript formatına aktar. Bu kılavuzda, YOLO26 modellerini TorchScript formatına nasıl aktaracağını göstereceğiz, böylece bunları daha geniş bir uygulama yelpazesinde kullanman daha kolay olacaktır.
Neden TorchScript'e aktarmalısın?#

PyTorch yaratıcıları tarafından geliştirilen TorchScript, PyTorch modellerini çeşitli platformlarda optimize etmek ve dağıtmak için güçlü bir araçtır. YOLO26 modellerini TorchScript formatına aktarmak, araştırmadan gerçek dünya uygulamalarına geçiş için çok önemlidir. PyTorch çerçevesinin bir parçası olan TorchScript, PyTorch modellerinin Python'u desteklemeyen ortamlarda kullanılmasına izin vererek bu geçişi daha sorunsuz hale getirmeye yardımcı olur.
Süreç, izleme (tracing) ve betikleme (scripting) olmak üzere iki teknik içerir. İzleme, model yürütme sırasındaki işlemleri kaydederken, betikleme modellerin Python'un bir alt kümesi kullanılarak tanımlanmasına olanak tanır. Bu teknikler, YOLO26 gibi modellerin normal Python ortamlarının dışında bile sihirlerini gerçekleştirmeye devam edebilmelerini sağlar.

TorchScript modelleri, operatör birleştirme ve bellek kullanımındaki iyileştirmeler gibi tekniklerle optimize edilerek verimli bir çalışma sağlanabilir. TorchScript'e dışa aktarmanın bir diğer avantajı, modelin çeşitli donanım platformlarında çalışma hızını artırma potansiyelidir. PyTorch modelinin, C++ ortamlarına entegre edilebilen bağımsız ve üretime hazır bir temsilini oluşturur.
TorchScript Modellerinin Temel Özellikleri#
PyTorch ekosisteminin kilit bir parçası olan TorchScript, derin öğrenme modellerini optimize etmek ve dağıtmak için güçlü özellikler sunar.

İşte TorchScript'i geliştiriciler için değerli bir araç haline getiren temel özellikler:
-
Statik Grafik Yürütme: TorchScript, PyTorch'un dinamik grafik yürütmesinden farklı olan, modelin hesaplamasının statik bir grafik temsilini kullanır. Statik grafik yürütmede, hesaplama grafiği gerçek yürütmeden önce bir kez tanımlanır ve derlenir, bu da çıkarım sırasında daha iyi performans sağlar.
-
Model Serileştirme: TorchScript, PyTorch modellerini platformdan bağımsız bir formata serileştirmeni sağlar. Serileştirilmiş modeller, orijinal Python koduna ihtiyaç duymadan yüklenebilir ve bu da farklı çalışma zamanı ortamlarında dağıtımı mümkün kılar.
-
JIT Derleme: TorchScript, PyTorch modellerini optimize edilmiş bir ara temsile dönüştürmek için Tam Zamanında (Just-In-Time - JIT) derlemeyi kullanır. JIT, modelin hesaplama grafiğini derleyerek hedef cihazlarda verimli yürütmeyi sağlar.
-
Kademeli Dönüştürme: TorchScript, PyTorch modelinin bölümlerini kademeli olarak TorchScript'e dönüştürmene olanak tanıyan kademeli bir dönüştürme yaklaşımı sağlar. Bu esneklik, karmaşık modellerle uğraşırken veya kodun belirli bölümlerini optimize etmek istediğinde özellikle yararlıdır.
TorchScript'teki Dağıtım Seçenekleri#
YOLO26 modellerini TorchScript formatına aktarma koduna bakmadan önce, TorchScript modellerinin normalde nerede kullanıldığını anlayalım.
TorchScript, makine öğrenimi modelleri için aşağıdakiler gibi çeşitli dağıtım seçenekleri sunar:
-
C++ API: TorchScript için en yaygın kullanım durumu, optimize edilmiş TorchScript modellerini doğrudan C++ uygulamaları içinde yüklemenize ve yürütmenize olanak tanıyan LibTorch C++ API sürümüdür. Bu, Python'un uygun veya kullanılabilir olmayabileceği üretim ortamları için idealdir. C++ API, düşük ek yük ve TorchScript modellerinin verimli bir şekilde yürütülmesini sunarak performans potansiyelini en üst düzeye çıkarır.
-
Mobil Dağıtım: Mobil cihazlarda düşük gecikmeli, çevrimdışı çıkarım ve veri gizliliği için PyTorch'un TorchScript Mobile yerine sunduğu ExecuTorch kullan.
-
Bulut Dağıtımı: TorchScript modelleri, TorchServe gibi çözümler kullanılarak bulut tabanlı sunuculara dağıtılabilir. Bu, üretim ortamlarında ölçeklenebilir dağıtım için model sürümleme, gruplama ve metrik izleme gibi özellikler sağlar. TorchScript ile bulut dağıtımı, modellerini API'ler veya diğer web servisleri aracılığıyla erişilebilir hale getirebilir.
Desteklenen Görevler#
TorchScript dışa aktarımı, yedi Ultralytics görevini de destekler. Anlamsal segmentasyon ve derinlik tahmini yalnızca bu başlıklara sahip tek aile olan YOLO26 ile kullanılabilir.
| Görev | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Algıla | ✅ | ✅ | ✅ |
| Segmentlere Ayır | ✅ | ✅ | ✅ |
| Anlamsal | ❌ | ❌ | ✅ |
| Derinlik | ❌ | ❌ | ✅ |
| Sınıflandır | ✅ | ✅ | ✅ |
| Poz | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
TorchScript'e Aktarma: YOLO26 Modelini Dönüştürme#
YOLO26 modellerini TorchScript'e aktarmak, onları farklı yerlerde kullanmanı kolaylaştırır ve daha hızlı, daha verimli çalışmalarına yardımcı olur. Bu, derin öğrenme modellerini gerçek dünya uygulamalarında daha etkili bir şekilde kullanmak isteyen herkes için harikadır.
Kurulum#
Gerekli paketi yüklemek için şunu çalıştır:
# Install the required package for YOLO26
pip install ultralyticsKurulum sürecine ilişkin ayrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza göz at. YOLO26 için gerekli paketleri kurarken herhangi bir zorlukla karşılaşırsan, çözümler ve ipuçları için Yaygın Sorunlar kılavuzumuza danış.
Kullanım#
Tüm Ultralytics YOLO26 modelleri, kutudan çıktığı gibi dışa aktarmayı destekleyecek şekilde tasarlanmıştır; bu da bunları tercih ettiğin dağıtım iş akışına entegre etmeni kolaylaştırır. Uygulaman için en iyi kurulumu seçmek üzere desteklenen dışa aktarım formatlarının ve yapılandırma seçeneklerinin tam listesini görüntüleyebilirsin.
TorchScript formatı Dışa Aktar (Export), Tahmin Et (Predict) ve Doğrula (Validate) modlarını destekler. Modelini dışa aktar, ardından çıkarım çalıştırmak veya doğruluğunu denetlemek için dışa aktarılan modeli yükle.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo26n.torchscript'from ultralytics import YOLO
# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Dışa Aktarma Argümanları#
| Argüman | Tip | Varsayılan | Açıklama |
|---|---|---|---|
format | str | 'torchscript' | Çeşitli dağıtım ortamlarıyla uyumluluğu tanımlayan, dışa aktarılan model için hedef format. |
imgsz | int veya tuple | 640 | Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tamsayı veya belirli boyutlar için bir (height, width) demeti (tuple) olabilir. |
dynamic | bool | False | Dinamik giriş boyutlarına izin vererek farklı görüntü boyutlarını işlemede esnekliği artırır. |
quantize | int veya str | None | Kuantizasyon hassasiyeti: 16 (FP16), device=0 ile GPU dışa aktarımı gerektirir; 32/ayarlanmamış ise FP32'dir. Kullanımdan kaldırılan half bayrağının yerini alır. |
nms | bool | False | Doğru ve verimli tespit sonrası işleme için gerekli olan Non-Maximum Suppression (NMS) ekler. |
batch | int | 1 | Dışa aktarılan modelin toplu çıkarım boyutunu veya dışa aktarılan modelin predict modunda aynı anda işleyeceği maksimum görüntü sayısını belirtir. |
device | str | None | Dışa aktarma için cihazı belirtir: GPU (device=0), CPU (device=cpu), Apple silikon için MPS (device=mps). |
Dışa aktarım süreci hakkında daha fazla ayrıntı için Ultralytics documentation page on exporting sayfasını ziyaret edin.
Dışa Aktarılan YOLO26 TorchScript Modellerini Dağıtma#
Ultralytics YOLO26 modellerini TorchScript formatına başarıyla aktardıktan sonra artık bunları dağıtabilirsin. Bir TorchScript modelini çalıştırmak için birincil ve önerilen ilk adım, önceki kullanım kod parçacığında belirtildiği gibi YOLO("model.torchscript") yöntemini kullanmaktır. TorchScript modellerini diğer ortamlarda dağıtmakla ilgili derinlemesine talimatlar için şu kaynaklara bir göz at:
-
Mobil Dağıtımı Keşfet: Mevcut PyTorch mobil dağıtımı için ExecuTorch'un ayrı
torch.export()→.pteboru hattını (pipeline) kullan. -
Sunucu Tarafı Dağıtımda Uzmanlaş: Ölçeklenebilir ve verimli model sunumu için adım adım bir eğitim sunan TorchServe ile modelleri sunucu tarafında nasıl dağıtacağını öğren.
-
C++ Dağıtımını Uygula: TorchScript modellerini C++ uygulamalarına entegre etmeyi kolaylaştırarak gelişmiş performans ve çok yönlülük sağlayan C++'ta Bir TorchScript Modeli Yükleme Eğitimine dal.
Özet#
Bu kılavuzda, Ultralytics YOLO26 modellerini TorchScript formatına aktarma sürecini inceledik. Sağlanan talimatları izleyerek, YOLO26 modellerini performans için optimize edebilir ve onları çeşitli platform ve ortamlarda dağıtma esnekliği kazanabilirsin.
Kullanım hakkında daha fazla ayrıntı için TorchScript'in resmi belgelerini ziyaret et.
Ayrıca, diğer Ultralytics YOLO26 entegrasyonları hakkında daha fazla bilgi edinmek istiyorsan entegrasyon kılavuzu sayfamızı ziyaret et. Orada pek çok yararlı kaynak ve fikir bulacaksın.
SSS#
Ultralytics YOLO26 modelinin TorchScript'e aktarılması nedir?#
Bir Ultralytics YOLO26 modelini TorchScript'e dışa aktarmak, esnek ve platformlar arası dağıtıma olanak tanır. PyTorch ekosisteminin bir parçası olan TorchScript, Python desteği olmayan ortamlarda çalıştırılabilen modellerin serileştirilmesini kolaylaştırır. Bu, modelleri C++ ortamlarında dağıtmak için faydalıdır.
Ultralytics kullanarak YOLO26 modelimi nasıl TorchScript'e aktarabilirim?#
Bir YOLO26 modelini TorchScript'e aktarmak için aşağıdaki örnek kodu kullanabilirsin:
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo26n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo26n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")Dışa aktarma süreci hakkında daha fazla ayrıntı için dışa aktarma hakkındaki Ultralytics belgelerine bakın.
YOLO26 modellerini dağıtmak için neden TorchScript kullanmalıyım?#
YOLO26 modellerini dağıtmak için TorchScript kullanmanın birkaç avantajı vardır:
- Taşınabilirlik: Dışa aktarılan modeller, Python olmadan C++ uygulamalarında çalışabilir.
- Optimizasyon: TorchScript, model performansını optimize edebilen statik grafik yürütmeyi ve Tam Zamanında (JIT) derlemeyi destekler.
- Diller Arası Entegrasyon: TorchScript modelleri, esnekliği ve genişletilebilirliği artırarak diğer programlama dillerine entegre edilebilir.
- Serileştirme: Modeller serileştirilebilir, bu da platformdan bağımsız yükleme ve çıkarım yapılmasını sağlar.
Dağıtım hakkında daha fazla bilgi edinmek için TorchServe Documentation ve C++ Deployment Guide sayfalarını ziyaret et. Cihaz üstü mobil dağıtım için PyTorch artık TorchScript yerine kendine ait ayrı bir torch.export() → .pte boru hattını kullanan ExecuTorch seçeneğini öneriyor.
YOLO26 modellerini TorchScript'e aktarmak için kurulum adımları nelerdir?#
YOLO26 modellerini dışa aktarmak için gereken paketi kurmak amacıyla şu komutu kullan:
# Install the required package for YOLO26
pip install ultralyticsAyrıntılı talimatlar için Ultralytics Kurulum kılavuzunu ziyaret et. Kurulum sırasında herhangi bir sorun çıkarsa Yaygın Sorunlar kılavuzuna danış.
Dışa aktardığım TorchScript YOLO26 modellerimi nasıl dağıtırım?#
YOLO26 modellerini TorchScript formatına aktardıktan sonra, onları çeşitli platformlarda dağıtabilirsin:
- C++ API: Düşük ek yük sağlayan, son derece verimli üretim ortamları için LibTorch kullan.
- Mobil Dağıtım: PyTorch'un desteklenen, ayrı bir
.ptedışa aktarma boru hattına sahip alternatifi olan ExecuTorch seçeneğini kullan. - Bulut Dağıtımı: Ölçeklenebilir sunucu tarafı dağıtımı için TorchServe gibi hizmetlerden yararlan.
TorchScript'in yeteneklerinden tam olarak yararlanmak için modelleri bu ayarlarda dağıtmaya yönelik kapsamlı kılavuzları keşfet.