Hızlı Dağıtım için YOLO26 Modelini TorchScript'e Dışa Aktarma
Bilgisayarlı görü modellerini gömülü sistemler, web tarayıcıları veya Python desteği sınırlı olan platformlar dahil olmak üzere farklı ortamlarda dağıtmak, esnek ve taşınabilir bir çözüm gerektirir. TorchScript, taşınabilirliğe ve tüm Python çerçevesinin kullanılamadığı ortamlarda modelleri çalıştırma yeteneğine odaklanır. Bu, bilgisayarlı görü yeteneklerini çeşitli cihazlar veya platformlar arasında dağıtman gereken senaryolar için idealdir.
Ultralytics YOLO26 modellerini platformlar arası uyumluluk ve kolaylaştırılmış dağıtım için serileştirmek üzere TorchScript'e dışa aktar. Bu kılavuzda, YOLO26 modellerini TorchScript formatına nasıl dışa aktaracağını göstereceğiz, böylece onları daha geniş bir uygulama yelpazesinde kullanman kolaylaşacak.
Neden TorchScript'e dışa aktarmalısın?

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 formatına dışa 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 olanak tanıyarak 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ında 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ştirebilmelerini sağlar.

TorchScript modelleri, operatör birleştirme ve bellek kullanımında iyileştirmeler gibi tekniklerle optimize edilerek verimli bir yürütme sağlanabilir. TorchScript'e dışa aktarmanın bir diğer avantajı da model yürütmeyi çeşitli donanım platformlarında hızlandırma potansiyelidir. PyTorch modelinin, C++ ortamlarına, gömülü sistemlere entegre edilebilen veya web ya da mobil uygulamalarda dağıtılabilen, üretime hazır, bağımsız bir temsilini 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.

İş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 performansı artırır.
-
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 (JIT) derleme kullanır. JIT, modelin hesaplama grafiğini derleyerek hedef cihazlarda verimli bir yürütme sağlar.
-
Diller Arası Entegrasyon: TorchScript ile PyTorch modellerini C++, Java ve JavaScript gibi diğer dillere aktarabilirsin. Bu, PyTorch modellerini farklı dillerde yazılmış mevcut yazılım sistemlerine entegre etmeyi kolaylaştırır.
-
Kademeli Dönüşüm: TorchScript, PyTorch modelinin bölümlerini kademeli olarak TorchScript'e dönüştürmene olanak tanıyan kademeli bir dönüşüm yaklaşımı sağlar. Bu esneklik, özellikle karmaşık modellerle uğraşırken veya kodun belirli kısımlarını optimize etmek istediğinde kullanışlıdır.
TorchScript'te Dağıtım Seçenekleri
YOLO26 modellerini TorchScript formatına dışa 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üklemeni ve çalıştırmanı sağlayan C++ API'sidir. Bu, Python'un uygun veya mevcut olmayabileceği üretim ortamları için idealdir. C++ API, TorchScript modellerinin düşük yükle ve verimli bir şekilde yürütülmesini sunarak performans potansiyelini en üst düzeye çıkarır.
-
Mobil Dağıtım: TorchScript, modelleri mobil cihazlarda kolayca dağıtılabilir formatlara dönüştürmek için araçlar sunar. PyTorch Mobile, bu modelleri iOS ve Android uygulamaları içinde yürütmek için bir çalışma zamanı sağlar. Bu, düşük gecikmeli, çevrimdışı çıkarım yetenekleri sağlayarak kullanıcı deneyimini ve veri gizliliğini artırır.
-
Bulut Dağıtımı: TorchScript modelleri, TorchServe gibi çözümler kullanılarak bulut tabanlı sunuculara dağıtılabilir. Ü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 servisleri aracılığıyla erişilebilir hale getirebilir.
TorchScript'e Dışa Aktarma: YOLO26 Modelini Dönüştürme
YOLO26 modellerini TorchScript'e dışa aktarmak, onları farklı yerlerde kullanmayı kolaylaştırır ve daha hızlı ve 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ü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ümler ve ipuçları için Yaygın Sorunlar kılavuzumuza danış.
Kullanım
Tüm Ultralytics YOLO26 modelleri, kutudan çıktığı gibi dışa aktarımı destekleyecek şekilde tasarlanmıştır; bu sayede onları tercih ettiğin dağıtım iş akışına kolayca entegre edebilirsin. Uygulaman için en iyi kurulumu seçmek amacıyla desteklenen dışa aktarım formatlarının ve yapılandırma seçeneklerinin tam listesine göz atabilirsin.
from ultralytics import YOLO
# Load the 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 Argümanları
| Argüman | Tür | 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 | Desired image size for the model input. Can be an integer for square images or a tuple (height, width) for specific dimensions. |
dynamic | bool | False | Değişken görüntü boyutlarını işlemede esnekliği artırarak dinamik giriş boyutlarına izin verir. |
half | bool | False | FP16 (yarım hassasiyet) nicelemeyi etkinleştirerek model boyutunu küçültür ve desteklenen donanımlarda çıkarım hızını potansiyel olarak artırır. |
optimize | bool | False | Mobil cihazlar için optimizasyon uygular, potansiyel olarak model boyutunu küçültür ve performansı artırır. |
nms | bool | False | Doğru ve verimli tespit sonrası işleme için gerekli olan Maksimum Olmayan Bastırma (NMS) özelliğini ekler. |
batch | int | 1 | Modelin dışa aktarılan 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 için cihazı belirtir: GPU (device=0), CPU (device=cpu), Apple silikon için MPS (device=mps). |
Dışa aktarma süreci hakkında daha fazla ayrıntı için dışa aktarma ile ilgili Ultralytics dokümantasyon sayfasını ziyaret et.
Dışa Aktarılan YOLO26 TorchScript Modellerini Dağıtma
Ultralytics YOLO26 modellerini TorchScript formatına başarıyla dışa aktardıktan sonra artık onları 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 ayarlarda dağıtmakla ilgili ayrıntılı talimatlar için aşağıdaki kaynaklara bir göz at:
-
Mobil Dağıtımı Keşfet: PyTorch Mobil Belgeleri, modelleri mobil cihazlarda dağıtmak için kapsamlı yönergeler sunarak uygulamalarının verimli ve duyarlı olmasını sağlar.
-
Sunucu Taraflı Dağıtımda Uzmanlaş: Ölçeklenebilir, verimli model sunumu için adım adım bir eğitim sunan TorchServe ile sunucu tarafında modelleri nasıl dağıtacağını öğren.
-
C++ Dağıtımını Uygula: TorchScript modellerini geliştirilmiş performans ve çok yönlülük için C++ uygulamalarına entegre etmeyi kolaylaştıran, C++'ta TorchScript Modeli Yükleme Eğitimini incele.
Özet
Bu kılavuzda, Ultralytics YOLO26 modellerini TorchScript formatına dışa aktarma sürecini inceledik. Sağlanan talimatları takip ederek, 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 istersen, entegrasyon rehberi sayfamızı ziyaret et. Orada pek çok yararlı kaynak ve içgörü bulacaksın.
SSS
Ultralytics YOLO26 modelinin TorchScript'e dışa aktarılması nedir?
Bir Ultralytics YOLO26 modelini TorchScript'e dışa aktarmak, esnek, 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 gömülü sistemlerde, C++ ortamlarında, mobil uygulamalarda ve hatta web tarayıcılarında dağıtmak için idealdir. TorchScript'e dışa aktarma, YOLO26 modellerinin çeşitli platformlarda verimli performans göstermesini ve daha geniş uygulanabilirliğini sağlar.
Ultralytics kullanarak YOLO26 modelimi nasıl TorchScript'e dışa aktarabilirim?
Bir YOLO26 modelini TorchScript'e dışa aktarmak için aşağıdaki örnek kodu kullanabilirsin:
from ultralytics import YOLO
# Load the 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 konusundaki Ultralytics belgelerine bak.
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; C++ uygulamaları, gömülü sistemler veya mobil cihazlar gibi Python gerektirmeyen ortamlarda çalışabilir.
- Optimizasyon: TorchScript, model performansını optimize edebilen statik grafik yürütme ve Tam Zamanında (JIT) derlemeyi 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ştirilebilir, bu da platformdan bağımsız yükleme ve çıkarıma olanak tanır.
Dağıtım hakkında daha fazla bilgi için PyTorch Mobil Belgelerini, TorchServe Belgelerini ve C++ Dağıtım Kılavuzunu ziyaret et.
YOLO26 modellerini TorchScript'e dışa aktarmak için kurulum adımları nelerdir?
YOLO26 modellerini dışa aktarmak için gerekli paketi yüklemek amacıyla aşağıdaki 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 dışa aktardıktan sonra, onları çeşitli platformlarda dağıtabilirsin:
- C++ API: Düşük yükle, oldukça verimli üretim ortamları için idealdir.
- Mobil Dağıtım: iOS ve Android uygulamaları için PyTorch Mobile kullan.
- Bulut Dağıtımı: Ölçeklenebilir sunucu taraflı 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ı yönergeleri keşfet.