Hızlı Dağıtım için YOLO26 Modelini TorchScript'e Aktarma#
PyTorch, TorchScript'i kullanımdan kaldırdı ve özelliklerini kademeli olarak kaldırıyor. Yeni mobil ve uç dağıtımlar için desteklenen ExecuTorch entegrasyonunu kullan. Ultralytics, eski C++ uyumluluğu için normal TorchScript dışa aktarımını koruyor.
Bilgisayarlı görü modellerini Python olmadan C++ ortamlarında dağıtmak için taşınabilir, serileştirilmiş bir gösterim gerekir. 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'e aktar. Bu kılavuzda, YOLO26 modellerini TorchScript biçimine nasıl aktaracağını ve bunları daha geniş bir uygulama yelpazesinde kullanmanı nasıl kolaylaştıracağını göstereceğiz.
Neden TorchScript'e aktarmalısın?#

PyTorch'un geliştiricileri 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'e aktarmak, araştırmadan gerçek dünya uygulamalarına geçiş için kritik öneme sahiptir. PyTorch çerçevesinin bir parçası olan TorchScript, PyTorch modellerinin Python'u desteklemeyen ortamlarda kullanılmasını sağlayarak bu geçişi kolaylaştırır.
Süreç iki tekniği kapsar: izleme ve betikleme. İzleme, model yürütülürken gerçekleştirilen işlemleri kaydederken betikleme, modellerin Python'un bir alt kümesi kullanılarak tanımlanmasına olanak tanır. Bu teknikler, YOLO26 gibi modellerin alışılmış Python ortamlarının dışında da işlevlerini sürdürebilmesini sağlar.

TorchScript modelleri, operatör füzyonu ve bellek kullanımındaki iyileştirmeler gibi tekniklerle de optimize edilerek verimli yürütme sağlanabilir. TorchScript'e aktarmanın bir diğer avantajı, model yürütmesini çeşitli donanım platformlarında hızlandırma potansiyelidir. PyTorch modelinin C++ ortamlarına entegre edilebilen bağımsız ve üretime hazır bir gösterimini oluşturur.
TorchScript Modellerinin Temel Özellikleri#
PyTorch ekosisteminin önemli bir parçası olan TorchScript, derin öğrenme modellerini optimize etmek ve dağıtmak için güçlü özellikler sunar.

TorchScript'i geliştiriciler için değerli bir araç hâline getiren temel özellikler şunlardır:
-
Statik Grafik Yürütme: TorchScript, model hesaplamasının statik bir grafik gösterimini kullanır; bu, PyTorch'un dinamik grafik yürütmesinden farklıdı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 performansın artmasını sağlar.
-
Model Serileştirme: TorchScript, PyTorch modellerini platformdan bağımsız bir biçimde serileştirmeni sağlar. Serileştirilmiş modeller, özgün Python kodu gerektirmeden yüklenebilir ve farklı çalışma zamanı ortamlarında dağıtılabilir.
-
JIT Derlemesi: TorchScript, PyTorch modellerini optimize edilmiş bir ara gösterime dönüştürmek için Tam Zamanında (JIT) derlemesini kullanır. JIT, modelin hesaplama grafiğini derleyerek hedef cihazlarda verimli yürütme sağlar.
-
Kademeli Dönüştürme: TorchScript, PyTorch modelinin bölümlerini artımlı olarak TorchScript'e dönüştürmene olanak tanıyan kademeli bir dönüştürme yaklaşımı sunar. Bu esneklik, özellikle karmaşık modellerle çalışırken veya kodun belirli bölümlerini optimize etmek istediğinde kullanışlıdır.
TorchScript'te Dağıtım Seçenekleri#
YOLO26 modellerini TorchScript biçimine aktarmaya yönelik koda bakmadan önce TorchScript modellerinin normalde nerelerde 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'si: TorchScript'in en yaygın kullanım alanı, optimize edilmiş TorchScript modellerini doğrudan C++ uygulamalarında yükleyip çalıştırmanı sağlayan LibTorch C++ API'sidir. Bu, Python'un uygun veya kullanılabilir olmayabileceği üretim ortamları için idealdir. C++ API'si, TorchScript modellerinin düşük ek yükle verimli şekilde yürütülmesini sağlayarak 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 çözüm olan ExecuTorch'u kullan.
-
Bulut Dağıtımı: TorchScript modelleri, TorchServe gibi çözümler kullanılarak bulut tabanlı sunuculara dağıtılabilir. TorchServe, üretim ortamlarında ölçeklenebilir dağıtım için model sürümleme, toplu işleme ve ölçüm izleme gibi özellikler sunar. TorchScript ile bulut dağıtımı, modellerine API'ler veya diğer web hizmetleri üzerinden erişilmesini sağlayabilir.
Desteklenen Görevler#
TorchScript dışa aktarımı, yedi Ultralytics görevinin tümünü destekler. Anlamsal segmentasyon ve derinlik tahmini yalnızca bu başlıkları içeren tek aile olan YOLO26 ile kullanılabilir.
| Görev | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Algılama | ✅ | ✅ | ✅ |
| Segmentasyon | ✅ | ✅ | ✅ |
| Semantik | ❌ | ❌ | ✅ |
| Derinlik | ❌ | ❌ | ✅ |
| Sınıflandırma | ✅ | ✅ | ✅ |
| Poz | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
TorchScript'e Aktarma: YOLO26 Modelini Dönüştürme#
YOLO26 modellerini TorchScript'e aktarmak, bunları farklı yerlerde kullanmanı kolaylaştırır ve daha hızlı ve verimli çalıştırılmalarına yardımcı olur. Bu, derin öğrenme modellerini gerçek dünya uygulamalarında daha etkili kullanmak isteyen herkes için yararlıdır.
Kurulum#
Gerekli paketi yüklemek için şunu çalıştır:
# Install the required package for YOLO26
pip install ultralyticsKurulum süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza göz at. YOLO26 için gerekli paketleri yüklerken herhangi bir zorlukla karşılaşırsan çözüm ve ipuçları için Yaygın Sorunlar kılavuzumuza başvur.
Kullanım#
Tüm Ultralytics YOLO26 modelleri, kutudan çıktığı hâliyle dışa aktarmayı destekleyecek şekilde tasarlanmıştır; böylece bunları tercih ettiğin dağıtım iş akışına kolayca entegre edebilirsin. Uygulaman için en iyi kurulumu seçmek üzere desteklenen dışa aktarma biçimlerinin ve yapılandırma seçeneklerinin tam listesini görüntüleyebilirsin.
TorchScript biçimi Export, Predict ve Validate modlarını destekler. Modelini dışa aktar, ardından çıkarım çalıştırmak veya doğruluğunu doğrulamak 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 Bağımsız Değişkenleri#
| Bağımsız değişken | Tür | Varsayılan | Açıklama |
|---|---|---|---|
format | str | 'torchscript' | Dışa aktarılan model için hedef formatı belirtir ve çeşitli dağıtım ortamlarıyla uyumluluğu tanımlar. |
imgsz | int veya tuple | 640 | Model girdisi için istenen görüntü boyutu. Kare görüntüler için bir tam sayı veya belirli boyutlar için (height, width) tuple'ı olabilir. |
dynamic | bool | False | Dinamik giriş boyutlarına izin vererek farklı görüntü boyutlarının işlenmesinde esnekliği artırır. |
quantize | int veya str | None | Niceleme duyarlılığı: 16 (FP16), device=0 ile GPU dışa aktarımı gerektirir; 32/ayarlanmadığında FP32 kullanılır. Kullanımdan kaldırılan half bayrağının yerini alır. |
nms | bool, isteğe bağlı | None | Ham çıktıyı (None, varsayılan), gömülü NMS'yi (True) veya NMS'siz kafayı (False) seç. |
batch | int | 1 | Dışa aktarma modelinin toplu çıkarım boyutunu veya dışa aktarılan modelin predict modunda eşzamanlı olarak işleyeceği maksimum görüntü sayısını belirtir. |
device | str | None | Dışa aktarma cihazını belirtir: GPU (device=0), CPU (device=cpu), Apple silicon için MPS (device=mps). |
Dışa aktarma süreci hakkında daha fazla ayrıntı için Ultralytics'in dışa aktarma dokümantasyonu sayfasını ziyaret et.
Dışa Aktarılan YOLO26 TorchScript Modellerini Dağıtma#
Ultralytics YOLO26 modellerini TorchScript biçimine başarıyla aktardıktan sonra bunları dağıtabilirsin. TorchScript modelini çalıştırmak için birincil ve önerilen ilk adım, önceki kullanım kodu parçacığında gösterildiği gibi YOLO("model.torchscript") yöntemini kullanmaktır. TorchScript modellerini diğer ayarlarda dağıtmaya ilişkin ayrıntılı talimatlar için aşağıdaki kaynaklara göz at:
-
Mobil Dağıtımı Keşfet: Güncel PyTorch mobil dağıtımı için ExecuTorch'un ayrı
torch.export()→.pteişlem hattını kullan. -
Sunucu Tarafı Dağıtımda Ustalaş: Ö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 modellerinin C++ uygulamalarına daha yüksek performans ve esneklik sağlayacak şekilde entegre edilmesini kolaylaştıran C++'ta TorchScript Modeli Yükleme eğitimine göz at.
Özet#
Bu kılavuzda, Ultralytics YOLO26 modellerini TorchScript biçimine aktarma sürecini inceledik. Sağlanan talimatları izleyerek YOLO26 modellerini performans için optimize edebilir ve bunları çeşitli platform ve ortamlarda dağıtma esnekliği kazanabilirsin.
Kullanım hakkında daha fazla bilgi için TorchScript'in resmî belgelerini ziyaret et.
Ayrıca diğer Ultralytics YOLO26 entegrasyonları hakkında daha fazla bilgi edinmek istersen entegrasyon kılavuzu sayfamızı ziyaret et. Orada birçok yararlı kaynak ve içgörü bulacaksın.
SSS#
Bir Ultralytics YOLO26 modelini TorchScript'e aktarmak, esnek ve platformlar arası dağıtım olanağı sağlar. PyTorch ekosisteminin bir parçası olan TorchScript, modellerin serileştirilmesini ve ardından Python desteği bulunmayan ortamlarda çalıştırılmasını kolaylaştırır. Bu, modellerin C++ ortamlarında dağıtılması için kullanışlıdır.
Bir YOLO26 modelini TorchScript'e aktarmak için aşağıdaki örnek kodu kullanabilirsin:
Kullanımfrom 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 bilgi için dışa aktarmaya ilişkin Ultralytics belgelerine başvur.
YOLO26 modellerini dağıtmak için TorchScript kullanmak çeşitli avantajlar sunar:
- 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) derlemesini destekler.
- Diller Arası Entegrasyon: TorchScript modelleri diğer programlama dillerine entegre edilerek esnekliği ve genişletilebilirliği artırabilir.
- Serileştirme: Modeller serileştirilebilir; böylece platformdan bağımsız yükleme ve çıkarım yapılabilir.
Dağıtım hakkında daha fazla bilgi için TorchServe Belgelerini ve C++ Dağıtım Kılavuzunu ziyaret et. Cihaz üzerinde mobil dağıtım için PyTorch artık TorchScript yerine kendi ayrı
torch.export()→.pteişlem hattını kullanan ExecuTorch'u öneriyor.YOLO26 modellerini dışa aktarmak için gerekli paketi yüklemek üzere aşağıdaki komutu kullan:
Kurulum# Install the required package for YOLO26 pip install ultralyticsAyrıntılı talimatlar için Ultralytics Yükleme kılavuzunu ziyaret et. Yükleme sırasında herhangi bir sorun yaşarsan Yaygın Sorunlar kılavuzuna başvur.
YOLO26 modellerini TorchScript biçimine aktardıktan sonra bunları çeşitli platformlarda dağıtabilirsin:
- C++ API'si: Düşük ek yüke sahip, yüksek verimli üretim ortamları için LibTorch'u kullan.
- Mobil Dağıtım: PyTorch'un desteklenen çözümü olan ExecuTorch'u, ayrı bir
.ptedışa aktarma işlem hattıyla 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 ortamlarda dağıtmaya yönelik kapsamlı kılavuzları incele.