Ultralytics YOLO27:

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 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?#

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

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 betikleme ve izleme karşılaştırması

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 temel özelliklerine genel bakış

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örevYOLOv8YOLO11YOLO26
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:

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

Dışa aktarma
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'
Tahmin
from ultralytics import YOLO

# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Doğrula
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şkenTürVarsayılanAçıklama
formatstr'torchscript'Dışa aktarılan model için hedef formatı belirtir ve çeşitli dağıtım ortamlarıyla uyumluluğu tanımlar.
imgszint veya tuple640Model 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.
dynamicboolFalseDinamik giriş boyutlarına izin vererek farklı görüntü boyutlarının işlenmesinde esnekliği artırır.
quantizeint veya strNoneNiceleme 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.
nmsbool, isteğe bağlıNoneHam çıktıyı (None, varsayılan), gömülü NMS'yi (True) veya NMS'siz kafayı (False) seç.
batchint1Dış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.
devicestrNoneDış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().pte iş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ım
    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 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().pte iş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 ultralytics

    Ayrı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 .pte dış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.

Yorumlar