Ultralytics YOLO27:
Get Started

Hızlı Dağıtım için YOLO26 Modelini TorchScript'e Aktarma#

PyTorch, TorchScript'i kullanımdan kaldırıyor

PyTorch, TorchScript'i kullanımdan kaldırdı ve özelliklerini aşamalı olarak kaldırıyor. Yeni mobil ve uç dağıtımlarda desteklenen ExecuTorch entegrasyonunu kullan. Ultralytics, eski C++ uyumluluğu için standart TorchScript dışa aktarımını sürdürüyor.

Python olmadan C++ ortamlarında bilgisayarlı görü modellerini dağıtmak için taşınabilir, serileştirilmiş bir gösterim gerekir. TorchScript, eski LibTorch uygulamalarına bu uyumluluğu sağlar.

Platformlar arası uyumluluk ve kolaylaştırılmış dağıtım için Ultralytics YOLO26 modellerini serileştirmek üzere TorchScript'e aktar. Bu kılavuzda, YOLO26 modellerini TorchScript biçimine nasıl aktaracağını göstererek modelleri daha geniş bir uygulama yelpazesinde kullanmanı kolaylaştıracağız.

Neden TorchScript'e aktarmalısın?#

TorchScript model serileştirme ve dağıtım iş akışına genel bakış

PyTorch'un 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 biçimine aktarmak, araştırmadan gerçek dünyadaki uygulamalara geçiş için kritik önem taşır. PyTorch çatısının bir parçası olan TorchScript, Python'ı desteklemeyen ortamlarda PyTorch modellerinin kullanılmasını sağlayarak bu geçişi kolaylaştırır.

Süreç iki tekniği içerir: izleme ve betikleme. İzleme, model yürütülürken işlemleri kaydeder; betikleme ise Python'ın bir alt kümesini kullanarak modeller tanımlamanı sağlar. Bu teknikler, YOLO26 gibi modellerin alışıldık Python ortamlarının dışında da çalışabilmesini sağlar.

TorchScript betikleme ve izleme karşılaştırması

TorchScript modelleri, operatör birleştirme ve bellek kullanımını iyileştirme gibi tekniklerle de optimize edilerek verimli yürütme sağlanabilir. TorchScript'e aktarmanın bir diğer avantajı, çeşitli donanım platformlarında model yürütmesini hızlandırma potansiyelidir. Bu işlem, C++ ortamlarına entegre edilebilen, bağımsız ve üretime hazır bir PyTorch model gösterimi 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'in temel özelliklerine genel bakış

TorchScript'i geliştiriciler için değerli bir araç haline getiren temel özellikler şunlardır:

  • Statik Grafik Yürütme: TorchScript, PyTorch'un dinamik grafik yürütmesinden farklı olarak model hesaplamasının statik grafik gösterimini kullanır. Statik grafik yürütmede hesaplama grafiği, gerçek yürütmeden önce bir kez tanımlanıp derlenir; böylece çıkarım sırasında performans artar.

  • 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ına 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.

  • Aşamalı Dönüştürme: TorchScript, PyTorch modelinin bazı kısımlarını aşamalı olarak TorchScript'e dönüştürmeni sağlayan bir 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 aktarma koduna bakmadan önce, TorchScript modellerinin genellikle 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'ın uygun veya kullanılabilir olmayabileceği üretim ortamları için idealdir. C++ API'si, TorchScript modellerini düşük ek yükle ve verimli biçimde çalıştırarak 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'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, gruplama ve metrik izleme gibi özellikler sunar. TorchScript ile bulut dağıtımı, modellerini API'ler veya diğer web hizmetleri üzerinden erişilebilir hale getirebilir.

Desteklenen Görevler#

TorchScript dışa aktarımı, yedi Ultralytics görevinin tamamını destekler. Anlamsal segmentasyon ve derinlik tahmini yalnızca bu başlıkları içeren tek aile olan YOLO26 ile kullanılabilir.

GörevYOLOv8YOLO11YOLO26
Algılama✅✅✅
Segmentasyon✅✅✅
Anlamsal❌❌✅
Derinlik❌❌✅
Sınıflandırma✅✅✅
Poz✅✅✅
OBB✅✅✅

TorchScript'e Aktarma: YOLO26 Modelini Dönüştürme#

YOLO26 modellerini TorchScript'e aktarmak, onları farklı yerlerde kullanmayı kolaylaştırır ve daha hızlı, verimli çalışmalarına yardımcı olur. Bu, gerçek dünyadaki uygulamalarda derin öğrenme modellerini daha etkili kullanmak isteyen herkes için faydalıdır.

Kurulum#

Gerekli paketi yüklemek için şu komutu çalıştır:

Kurulum
# Install the required package for YOLO26
pip install ultralytics

Kurulum 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 zorluk yaşarsan çözüm ve ipuçları için Yaygın Sorunlar kılavuzumuza başvur.

Kullanım#

Tüm Ultralytics YOLO26 modelleri, kutudan çıktığı gibi dışa aktarmayı destekleyecek şekilde tasarlanmıştır; bu sayede tercih ettiğin dağıtım iş akışına kolayca entegre edebilirsin. Uygulaman için en uygun 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 Dışa Aktar, Tahmin ve Doğrula modlarını destekler. Modelini dışa aktar, ardından çıkarım yapmak veya doğruluğunu doğrulamak için dışa aktarılan modeli yükle.

Dışa aktar
from ultralytics import YOLO

# YOLO26 modelini yükle
model = YOLO("yolo26n.pt")

# Modeli TorchScript biçimine aktar
model.export(format="torchscript")  # 'yolo26n.torchscript' dosyasını oluşturur
Tahmin
from ultralytics import YOLO

# Dışa aktarılan TorchScript modelini yükle
model = YOLO("yolo26n.torchscript")

# Çıkarımı çalıştır
results = model("https://ultralytics.com/images/bus.jpg")
Doğrula
from ultralytics import YOLO

# Dışa aktarılan TorchScript modelini yükle
model = YOLO("yolo26n.torchscript")

# COCO8 veri kümesinde doğruluğu doğrula
metrics = model.val(data="coco8.yaml")

Dışa Aktarma Bağımsız Değişkenleri#

Bağımsız değişkenTürVarsayılanAçıklama
formatstr'torchscript'Dışa aktarılan modelin hedef biçimi; çeşitli dağıtım ortamlarıyla uyumluluğu tanımlar.
imgszint veya tuple640Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tam sayı, belirli boyutlar içinse (height, width) demeti kullanılabilir.
dynamicboolFalseDinamik giriş boyutlarına izin vererek farklı görüntü boyutlarını işleme esnekliğini artırır.
quantizeint veya strNoneNicemleme hassasiyeti: 16 (FP16), device=0 ile GPU dışa aktarımı gerektirir; 32/ayarlanmamış değer FP32'dir. Kullanımdan kaldırılan half bayrağının yerini alır.
nmsbool, isteğe bağlıNoneHam çıktıyı (None, varsayılan), gömülü NMS'yi (True) veya NMS'siz başlığı (False) seç.
batchint1Dışa aktarılan modelin toplu çıkarım boyutunu veya predict kipinde eşzamanlı işleyeceği en fazla görüntü sayısını belirtir.
devicestrNoneDışa aktarma aygıtını belirtir: GPU (device=0), CPU (device=cpu), Apple silikon için MPS (device=mps).

Dışa aktarma süreci hakkında daha fazla bilgi için Ultralytics dışa aktarma belgeleri 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 modelleri dağıtabilirsin. TorchScript modelini çalıştırmak için önerilen ilk ve temel adım, önceki kullanım kodu örneğinde gösterildiği gibi YOLO("model.torchscript") yöntemini kullanmaktır. TorchScript modellerini diğer ortamlarda dağıtmaya yönelik 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() → .pte işlem hattını kullan.

  • Sunucu Tarafı Dağıtımında 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 daha yüksek performans ve çok yönlülük için C++ uygulamalarına entegre etmeyi sağlayan, C++'ta TorchScript Modeli Yükleme eğitimini incele.

Özet#

Bu kılavuzda Ultralytics YOLO26 modellerini TorchScript biçimine aktarma sürecini ele aldık. Verilen talimatları izleyerek YOLO26 modellerini performans için optimize edebilir ve çeşitli platform ve ortamlarda dağıtma esnekliği kazanabilirsin.

Kullanımla ilgili daha fazla ayrıntı için TorchScript'in resmi belgelerini ziyaret et.

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 bilgi bulabilirsin.

Sık Sorulan Sorular#

  • 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 sağlar; ardından modeller Python desteği olmayan ortamlarda çalıştırılabilir. Bu özellik, modellerin C++ ortamlarına dağıtılmasını kullanışlı hale getirir.

  • Bir YOLO26 modelini TorchScript'e aktarmak için aşağıdaki örnek kodu kullanabilirsin:

    Kullanım
    from ultralytics import YOLO
    
    # YOLO26 modelini yükle
    model = YOLO("yolo26n.pt")
    
    # Modeli TorchScript biçimine aktar
    model.export(format="torchscript")  # 'yolo26n.torchscript' dosyasını oluşturur
    
    # Dışa aktarılan TorchScript modelini yükle
    torchscript_model = YOLO("yolo26n.torchscript")
    
    # Çıkarımı çalıştır
    results = torchscript_model("https://ultralytics.com/images/bus.jpg")

    Dışa aktarma süreci hakkında daha fazla bilgi için Ultralytics dışa aktarma belgelerine bak.

  • YOLO26 modellerini dağıtmak için TorchScript kullanmanın çeşitli avantajları 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) derlemesini destekler.
    • Diller Arası Entegrasyon: TorchScript modelleri diğer programlama dillerine entegre edilebilir; bu da esnekliği ve genişletilebilirliği artırır.
    • Serileştirme: Modeller serileştirilerek platformdan bağımsız yükleme ve çıkarım olanağı sağlanabilir.

    Dağıtım hakkında daha fazla bilgi için TorchServe Documentation ve C++ Deployment Guide sayfalarını ziyaret et. Mobil cihazlarda dağıtım için PyTorch artık, TorchScript yerine kendine ait ayrı bir torch.export() → .pte işlem hattı kullanan ExecuTorch çözümünü öneriyor.

  • YOLO26 modellerini dışa aktarmak için gereken paketi kurmak üzere şu komutu kullan:

    Kurulum
    # Install the required package for YOLO26
    pip install ultralytics

    Ayrıntılı yönergeler için Ultralytics Installation guide sayfasını ziyaret et. Kurulum sırasında herhangi bir sorunla karşılaşırsan Common Issues guide sayfasına başvur.

  • YOLO26 modellerini TorchScript biçimine aktardıktan sonra bunları çeşitli platformlarda dağıtabilirsin:

    • C++ API: Düşük ek yük ve yüksek verimlilik gerektiren üretim ortamları için LibTorch kullan.
    • Mobil Dağıtım: PyTorch'un desteklediği, ayrı bir .pte dışa aktarma işlem hattına sahip alternatif çözüm ExecuTorch 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ı yönergeleri incele.

Yorumlar