İçeriğe geç

Neural Magic'in DeepSparse Motoru ile YOLOv8 Çıkarımlarını Optimize Etme

gibi nesne algılama modellerini dağıtırken Ultralytics YOLOv8 çeşitli donanımlarda, optimizasyon gibi benzersiz sorunlarla karşılaşabilirsiniz. İşte bu noktada YOLOv8'un Neural Magic'un DeepSparse Engine ile entegrasyonu devreye giriyor. YOLOv8 modellerinin yürütülme şeklini dönüştürür ve doğrudan CPU'larda GPU düzeyinde performans sağlar.

Bu kılavuz, Neural Magic's DeepSparse kullanarak YOLOv8 adresini nasıl dağıtacağınızı, çıkarımları nasıl çalıştıracağınızı ve ayrıca optimize edildiğinden emin olmak için performansı nasıl kıyaslayacağınızı gösterir.

Neural Magic'in DeepSparse

Neural MagicDeepSparse'a Genel Bakış

Neural MagicDeepSparse, CPU'larda sinir ağlarının yürütülmesini optimize etmek için tasarlanmış bir çıkarım çalışma zamanıdır. Doğruluğu korurken hesaplama taleplerini önemli ölçüde azaltmak için seyreklik, budama ve niceleme gibi gelişmiş teknikler uygular. DeepSparse, çeşitli cihazlarda verimli ve ölçeklenebilir sinir ağı yürütme için çevik bir çözüm sunar.

Neural Magic'un DeepSparse ile Entegrasyonunun Faydaları YOLOv8

DeepSparse kullanarak YOLOV8 adresinin nasıl dağıtılacağına geçmeden önce, DeepSparse kullanmanın faydalarını anlayalım. Bazı önemli avantajlar şunlardır:

  • Geliştirilmiş Çıkarım Hızı: 525 FPS'ye kadar ( YOLOv8n adresinde) ulaşarak YOLOv8'un çıkarım yeteneklerini geleneksel yöntemlere kıyasla önemli ölçüde hızlandırır.

Geliştirilmiş Çıkarım Hızı

  • Optimize Edilmiş Model Verimliliği: YOLOv8 'un verimliliğini artırmak için budama ve niceleme kullanır, doğruluğu korurken model boyutunu ve hesaplama gereksinimlerini azaltır.

Optimize Edilmiş Model Verimliliği

  • Standart CPU'larda Yüksek Performans: CPU'larda GPU benzeri performans sunarak çeşitli uygulamalar için daha erişilebilir ve uygun maliyetli bir seçenek sunar.

  • Kolaylaştırılmış Entegrasyon ve Dağıtım: Görüntü ve video açıklama özellikleri de dahil olmak üzere YOLOv8 'un uygulamalara kolay entegrasyonu için kullanıcı dostu araçlar sunar.

  • Çeşitli Model Türleri için Destek: Hem standart hem de seyreklik için optimize edilmiş YOLOv8 modelleriyle uyumludur ve dağıtım esnekliği sağlar.

  • Uygun Maliyetli ve Ölçeklenebilir Çözüm: Operasyonel giderleri azaltır ve gelişmiş nesne algılama modellerinin ölçeklenebilir dağıtımını sunar.

Neural Magic'un DeepSparse Teknolojisi Nasıl Çalışır?

Neural Magic'nin Deep Sparse teknolojisi, insan beyninin sinir ağı hesaplamasındaki verimliliğinden esinlenmiştir. Beyinden aşağıdaki gibi iki temel ilkeyi benimser:

  • Seyreklik: Seyrekleştirme süreci, derin öğrenme ağlarındaki gereksiz bilgilerin budanmasını içerir ve doğruluktan ödün vermeden daha küçük ve daha hızlı modellere yol açar. Bu teknik, ağın boyutunu ve hesaplama ihtiyaçlarını önemli ölçüde azaltır.

  • Referansın Yerelliği: DeepSparse, ağı Tensor Sütunlarına bölen benzersiz bir yürütme yöntemi kullanır. Bu sütunlar, tamamen CPU'nun önbelleğine sığacak şekilde derinlemesine yürütülür. Bu yaklaşım, beynin verimliliğini taklit ederek veri hareketini en aza indirir ve CPU'nun önbellek kullanımını en üst düzeye çıkarır.

Neural Magic'un DeepSparse Teknolojisi Nasıl Çalışır?

Neural Magic'un DeepSparse teknolojisinin nasıl çalıştığı hakkında daha fazla ayrıntı için blog gönderilerine göz atın.

Özel Bir Veri Kümesi Üzerinde Eğitilmiş YOLOv8 'un Seyrek Bir Sürümünü Oluşturma

Neural Magic tarafından geliştirilen açık kaynaklı bir model deposu olan SparseZoo, önceden ayrıştırılmış YOLOv8 model kontrol noktalarından oluşan bir koleksiyon sunmaktadır. Ultralytics ile sorunsuz bir şekilde entegre olan SparseML ile kullanıcılar, basit bir komut satırı arayüzü kullanarak bu seyrek kontrol noktalarına kendi özel veri kümelerinde zahmetsizce ince ayar yapabilirler.

Daha fazla ayrıntı için Neural Magic'un SparseML YOLOv8 belgelerine göz atın.

Kullanım: DeepSparse kullanarak YOLOV8 adresini dağıtma

YOLOv8 adresini Neural Magic's DeepSparse ile dağıtmak birkaç basit adımı içerir. Kullanım talimatlarına geçmeden önce, Ultralytics tarafından sunulanYOLOv8 modelleri yelpazesine göz attığınızdan emin olun. Bu, proje gereksinimleriniz için en uygun modeli seçmenize yardımcı olacaktır. İşte nasıl başlayabileceğiniz.

Adım 1: Kurulum

Gerekli paketleri yüklemek için çalıştırın:

Kurulum

# Install the required packages
pip install deepsparse[yolov8]

Adım 2: YOLOv8 adresini ONNX Formatına Aktarma

DeepSparse Engine, YOLOv8 modellerinin ONNX biçiminde olmasını gerektirir. Modelinizi bu formata aktarmak DeepSparse ile uyumluluk için gereklidir. YOLOv8 modellerini dışa aktarmak için aşağıdaki komutu kullanın:

Model İhracatı

# Export YOLOv8 model to ONNX format
yolo task=detect mode=export model=yolov8n.pt format=onnx opset=13

Bu komut aşağıdakileri kaydedecektir yolov8n.onnx modelini diskinize yükleyin.

Adım 3: Çıkarımları Dağıtma ve Çalıştırma

YOLOv8 modeliniz ONNX biçimindeyken DeepSparse kullanarak çıkarımları dağıtabilir ve çalıştırabilirsiniz. Bu, sezgisel Python API'si ile kolayca yapılabilir:

Çıkarımları Dağıtma ve Çalıştırma

from deepsparse import Pipeline

# Specify the path to your YOLOv8 ONNX model
model_path = "path/to/yolov8n.onnx"

# Set up the DeepSparse Pipeline
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)

# Run the model on your images
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)

Adım 4: Performans Karşılaştırması

YOLOv8 modelinizin DeepSparse üzerinde en iyi şekilde çalışıp çalışmadığını kontrol etmek önemlidir. Verim ve gecikme süresini analiz etmek için modelinizin performansını kıyaslayabilirsiniz:

Kıyaslama

# Benchmark performance
deepsparse.benchmark model_path="path/to/yolov8n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"

Adım 5: Ek Özellikler

DeepSparse, görüntü açıklama ve veri kümesi değerlendirmesi gibi uygulamalarda YOLOv8 'un pratik entegrasyonu için ek özellikler sağlar.

Ek Özellikler

# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolov8n.onnx"

# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolov8n.onnx"

Annotate komutunu çalıştırmak, belirttiğiniz görüntüyü işler, nesneleri algılar ve sınırlayıcı kutular ve sınıflandırmalarla birlikte açıklamalı görüntüyü kaydeder. Açıklamalı görüntü bir annotation-results klasöründe saklanacaktır. Bu, modelin algılama yeteneklerinin görsel bir temsilini sağlamaya yardımcı olur.

Görüntü Ek Açıklama Özelliği

eval komutunu çalıştırdıktan sonra, hassasiyet, geri çağırma ve mAP (ortalama Ortalama Hassasiyet) gibi ayrıntılı çıktı ölçümleri alacaksınız. Bu, modelinizin veri kümesi üzerindeki performansına ilişkin kapsamlı bir görünüm sağlar. Bu işlevsellik, YOLOv8 modellerinizi belirli kullanım durumları için ince ayar yapmak ve optimize etmek, yüksek doğruluk ve verimlilik sağlamak için özellikle yararlıdır.

Özet

Bu kılavuzda Ultralytics' YOLOv8 ile Neural Magic'DeepSparse Engine'in entegrasyonu incelenmiştir. Bu entegrasyonun GPU düzeyinde verimlilik ve gelişmiş sinir ağı seyreklik teknikleri sunarak YOLOv8'un CPU platformlarındaki performansını nasıl artırdığı vurgulanmıştır.

Daha ayrıntılı bilgi ve gelişmiş kullanım için Neural Magic'un DeepSparse belgelerini ziyaret edin. Ayrıca, Neural Magic'un YOLOv8 ile entegrasyon hakkındaki belgelerineburadan göz atın ve bu konudaki harika bir oturumu buradan izleyin.

Ayrıca, çeşitli YOLOv8 entegrasyonları hakkında daha geniş bir anlayış için, bir dizi diğer heyecan verici entegrasyon olasılığını keşfedebileceğiniz Ultralytics entegrasyon kılavuzu sayfasını ziyaret edin.



Oluşturma 2023-12-30, Güncelleme 2024-05-18
Yazarlar: glenn-jocher (4), abirami-vina (1)

Yorumlar