Hızlı Dağıtım için TorchScript'e YOLO11 Model Aktarımı
Gömülü sistemler, web tarayıcıları veya sınırlı Python desteği olan platformlar dahil olmak üzere farklı ortamlarda bilgisayar görüşü modellerini 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, bilgisayar görüşü yeteneklerinizi çeşitli cihazlarda veya platformlarda dağıtmanız gereken senaryolar için idealdir.
Çapraz platform uyumluluğu ve kolaylaştırılmış dağıtım için Ultralytics YOLO11 modellerinizi serileştirmek üzere Torchscript'e aktarın. Bu kılavuzda, YOLO11 modellerinizi TorchScript biçimine nasıl aktaracağınızı ve böylece bunları daha geniş bir uygulama yelpazesinde kullanmanızı nasıl kolaylaştıracağınızı göstereceğiz.
Neden TorchScript'e aktarmalısınız?
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. YOLO11 modellerini TorchScript'e 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ılabilmesini sağlayarak bu geçişi kolaylaştırmaya yardımcı olur.
Bu süreç, izleme ve komut dosyası oluşturma olmak üzere iki teknik içerir. İzleme, model yürütme sırasında işlemleri kaydederken, komut dosyası oluşturma, Python'ın bir alt kümesini kullanarak modellerin tanımlanmasına olanak tanır. Bu teknikler, YOLO11 gibi modellerin normal Python ortamlarının dışında bile sihirlerini yapmaya devam edebilmelerini sağlar.
TorchScript modelleri ayrıca operatör füzyonu ve bellek kullanımındaki iyileştirmeler gibi tekniklerle optimize edilebilir ve verimli yürütme sağlanır. TorchScript'e aktarmanın bir diğer avantajı, çeşitli donanım platformlarında model yürütmesini hızlandırma potansiyelidir. PyTorch modelinizin C++ ortamlarına, gömülü sistemlere entegre edilebilen veya web veya mobil uygulamalarda dağıtılabilen bağımsız, üretime hazır 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.
TorchScript'i geliştiriciler için değerli bir araç yapan temel özellikler şunlardır:
-
Statik Grafik Yürütme: TorchScript, PyTorch'un dinamik grafik yürütmesinden farklı olan modelin hesaplamasının statik bir grafik gösterimini 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 gelişmiş performans sağlar.
-
Model Serileştirme: TorchScript, PyTorch modellerini platformdan bağımsız bir biçimde serileştirmenize olanak tanır. Serileştirilmiş modeller, orijinal Python kodunu gerektirmeden yüklenebilir ve farklı çalışma zamanı ortamlarında dağıtıma olanak tanır.
-
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.
-
Çoklu Dil Entegrasyonu: TorchScript ile PyTorch modellerini C++, Java ve JavaScript gibi diğer dillere aktarabilirsiniz. Bu, PyTorch modellerini farklı dillerde yazılmış mevcut yazılım sistemlerine entegre etmeyi kolaylaştırır.
-
Aşamalı Dönüşüm: TorchScript, PyTorch modelinizin bölümlerini kademeli olarak TorchScript'e dönüştürmenize olanak tanıyan aşamalı bir dönüştürme yaklaşımı sağlar. Bu esneklik, özellikle karmaşık modellerle uğraşırken veya kodun belirli bölümlerini optimize etmek istediğinizde kullanışlıdır.
TorchScript'te Dağıtım Seçenekleri
YOLO11 modellerini TorchScript biçimine 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 örneği, optimize edilmiş TorchScript modellerini doğrudan C++ uygulamaları içinde yüklemenize ve yürütmenize olanak tanıyan C++ API'sidir. Bu, Python'un uygun veya mevcut olmayabileceği üretim ortamları için idealdir. C++ API'si, TorchScript modellerinin düşük ek yük ve verimli 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 biçimlere dönüştürmek için araçlar sunar. PyTorch Mobile, bu modelleri iOS ve Android uygulamalarında 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 geliştirir.
-
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, toplu işleme ve metrik izleme gibi özellikler sağlar. TorchScript ile bulut dağıtımı, modellerinizi API'ler veya diğer web hizmetleri aracılığıyla erişilebilir hale getirebilir.
TorchScript'e Aktar: YOLO11 Modelinizi Dönüştürme
YOLO11 modellerini TorchScript'e aktarmak, bunların farklı yerlerde kullanılmasını kolaylaştırır ve daha hızlı ve verimli çalışması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ın:
Kurulum
# Install the required package for YOLO11
pip install ultralytics
Yükleme süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza bakın. YOLO11 için gerekli paketleri yüklerken herhangi bir zorlukla karşılaşırsanız, çözümler ve ipuçları için Sık Karşılaşılan Sorunlar kılavuzumuza başvurun.
Kullanım
Tüm Ultralytics YOLO11 modelleri, kutudan çıkar çıkmaz dışa aktarmayı destekleyecek şekilde tasarlanmıştır ve bu da onları tercih ettiğiniz dağıtım iş akışına entegre etmeyi kolaylaştırır. Uygulamanız 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üleyebilirsiniz.
Kullanım
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'
# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='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 modelin 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 bir demet olabilir (height, width) belirli boyutlar için. |
optimize |
bool |
False |
Mobil cihazlar için optimizasyon uygular, bu da model boyutunu potansiyel olarak küçültür ve performansı artırır. |
nms |
bool |
False |
Doğru ve verimli algılama sonrası işleme için gerekli olan Non-Maximum Suppression (NMS) ekler. |
batch |
int |
1 |
Dışa aktarma modeli toplu çıkarım boyutunu veya dışa aktarılan modelin aynı anda işleyeceği maksimum görüntü sayısını belirtir. predict modu. |
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 bilgi için Ultralytics'in dışa aktarma hakkındaki dokümantasyon sayfasını ziyaret edin.
Aktarılan YOLO11 TorchScript Modellerini Dağıtma
Ultralytics YOLO11 modellerinizi TorchScript biçiminde başarıyla dışa aktardıktan sonra, artık bunları dağıtabilirsiniz. Bir TorchScript modelini çalıştırmak için birincil ve önerilen ilk adım, önceki kullanım kodu parçasında belirtildiği gibi YOLO("model.torchscript") yöntemini kullanmaktır. Bununla birlikte, TorchScript modellerinizi çeşitli diğer ayarlarda dağıtma hakkında ayrıntılı talimatlar için aşağıdaki kaynaklara göz atın:
-
Mobil Dağıtımı Keşfedin: PyTorch Mobil Dokümantasyonu, uygulamalarınızın verimli ve duyarlı olmasını sağlayarak modelleri mobil cihazlarda dağıtmaya yönelik kapsamlı yönergeler sağlar.
-
Ana Sunucu Tarafı Dağıtımı: Ölçeklenebilir, verimli model sunumu için adım adım bir öğretici sunan TorchServe ile modellerin sunucu tarafında nasıl dağıtılacağını öğrenin.
-
C++ Dağıtımını Uygulayın: TorchScript modellerinizin gelişmiş performans ve çok yönlülük için C++ uygulamalarına entegrasyonunu kolaylaştıran, C++'da bir TorchScript Modelini Yükleme Öğreticisine dalın.
Özet
Bu kılavuzda, Ultralytics YOLO11 modellerini TorchScript biçimine aktarma sürecini inceledik. Sağlanan talimatları izleyerek, YOLO11 modellerini performans için optimize edebilir ve bunları çeşitli platformlarda ve ortamlarda dağıtma esnekliği kazanabilirsiniz.
Kullanım hakkında daha fazla ayrıntı için TorchScript'in resmi belgelerini ziyaret edin.
Ayrıca, diğer Ultralytics YOLO11 entegrasyonları hakkında daha fazla bilgi edinmek isterseniz, entegrasyon kılavuzu sayfamızı ziyaret edin. Orada birçok faydalı kaynak ve içgörü bulacaksınız.
SSS
Ultralytics YOLO11 modelinin TorchScript'e aktarımı nedir?
Bir Ultralytics YOLO11 modelini TorchScript'e aktarmak, esnek, çapraz platform dağıtımına olanak tanır. PyTorch ekosisteminin bir parçası olan TorchScript, modellerin serileştirilmesini kolaylaştırır ve bu da daha sonra Python desteği olmayan ortamlarda yürütülebilir. 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 aktarmak, YOLO11 modellerinizin çeşitli platformlarda verimli performansını ve daha geniş uygulanabilirliğini sağlar.
Ultralytics kullanarak YOLO11 modelimi TorchScript'e nasıl aktarabilirim?
Bir YOLO11 modelini TorchScript'e aktarmak için aşağıdaki örnek kodu kullanabilirsiniz:
Kullanım
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'
# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'
Dışa aktarma süreci hakkında daha fazla ayrıntı için, Ultralytics'in dışa aktarma konusundaki belgelerine bakın.
YOLO11 modellerini dağıtmak için neden TorchScript kullanmalıyım?
YOLO11 modellerini dağıtmak için TorchScript kullanmak çeşitli avantajlar sunar:
- Taşınabilirlik: Dışa aktarılan modeller, C++ uygulamaları, gömülü sistemler veya mobil cihazlar gibi python'a ihtiyaç duymayan ortamlarda çalışabilir.
- Optimizasyon: TorchScript, model performansını optimize edebilen statik grafik yürütmeyi ve Tam Zamanında (JIT) derlemeyi destekler.
- Çoklu Dil Entegrasyonu: 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ıma olanak tanır.
Dağıtım hakkında daha fazla bilgi için PyTorch Mobile Belgelerine, TorchServe Belgelerine ve C++ Dağıtım Kılavuzuna bakın.
YOLO11 modellerini TorchScript'e aktarmak için kurulum adımları nelerdir?
YOLO11 modellerini dışa aktarmak için gerekli paketi yüklemek için aşağıdaki komutu kullanın:
Kurulum
# Install the required package for YOLO11
pip install ultralytics
Ayrıntılı talimatlar için Ultralytics Kurulum kılavuzunu ziyaret edin. Kurulum sırasında herhangi bir sorun ortaya çıkarsa, Yaygın Sorunlar kılavuzuna başvurun.
Dışa aktarılan TorchScript YOLO11 modellerimi nasıl dağıtabilirim?
YOLO11 modellerini TorchScript biçimine aktardıktan sonra, bunları çeşitli platformlarda dağıtabilirsiniz:
- C++ API: Düşük ek yük, yüksek verimli üretim ortamları için idealdir.
- Mobil Dağıtım: iOS ve Android uygulamaları için PyTorch Mobile'ı kullanın.
- Bulut Dağıtımı: Ölçeklenebilir sunucu tarafı dağıtımı için TorchServe gibi hizmetlerden yararlanın.
TorchScript'in yeteneklerinden tam olarak yararlanmak için bu ayarlarda modelleri dağıtmaya yönelik kapsamlı yönergeleri keşfedin.