Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Inference Engine

Çıkarım motoru, eğitilmiş modelleri birleştirilmiş katmanlar, daha düşük duyarlık ve ayarlanmış çekirdeklerle hedef donanımda çalıştırır. Nasıl çalıştığı ve yaygın motorlar.

Çıkarım motoru, yeni veriler üzerinde tahminler üretmek için eğitilmiş bir sinir ağını çalıştıran yazılımdır. Eğitim çatısından genellikle ONNX dosyası gibi bir hesaplama grafiği biçiminde dışa aktarılan modeli alır, bu grafiği belirli bir işlemci için optimize eder ve mümkün olan en düşük çıkarım gecikmesi ve bellek kullanımıyla çalıştırır. Veri merkezi GPU'larından telefonlara ve mikrodenetleyicilere kadar her donanım sınıfı için motorlar bulunur ve model dağıtımında her tahmini hesaplayan bileşen motordur.

Çıkarım Motorları Modelleri Nasıl Hızlandırır#

Dağıtılmış bir model ağırlıklarını hiçbir zaman güncellemez; bu nedenle motor, geri yayılım için saklanan aktivasyonlar gibi eğitim için gereken her şeyi atabilir ve grafiği serbestçe yeniden yazabilir. Yalnızca sabitlere bağlı tüm kısımları önceden hesaplar; evrişim, normalleştirme ve aktivasyon gibi katman zincirlerini tek çekirdekte birleştirerek ara sonuçları hızlı yonga üstü bellekte tutar ve arabelleklerin yeniden kullanılacağı şekilde belleği planlar. Sayısal duyarlılığı FP16 veya INT8'e düşürmek için model nicelemesi uygulayabilir; INT8 için örnek verilerdeki aktivasyon aralıklarını ölçer. TensorRT gibi motorlar daha sonra gerçek cihazda her katman için birden fazla olası çekirdeği zamanlayıp en hızlı olanı seçer; bu nedenle sonuç o donanıma bağlıdır:

Yığın normalleştirmesini önceki evrişim katmanına katlamak, en yaygın yeniden yazma işlemlerinden biridir. Çıkarım sırasında normalleştirme her kanalı yalnızca sabit değerlerle ölçeklendirip kaydırır; dolayısıyla bu değerler evrişim katmanının ağırlıklarına ve bias değerine katılabilir. PyTorch aynı dönüşümü fuse_conv_bn_eval olarak sunar:

import torch
from torch.nn.utils.fusion import fuse_conv_bn_eval

torch.manual_seed(0)

# A trained convolution followed by batch normalization (random statistics here)
conv = torch.nn.Conv2d(16, 32, kernel_size=3, padding=1).eval()
bn = torch.nn.BatchNorm2d(32).eval()
bn.running_mean.uniform_(-1, 1)
bn.running_var.uniform_(0.5, 2.0)

# Fold the normalization's scale and shift into the convolution's weights and bias
fused = fuse_conv_bn_eval(conv, bn)

# One layer now replaces two and produces the same output
x = torch.randn(1, 16, 64, 64)
with torch.inference_mode():
    diff = (bn(conv(x)) - fused(x)).abs().max().item()
print(f"Max difference after fusing: {diff:.1e}")

En büyük fark olarak 2.1e-06 değerini yazdırır; bu, kayan nokta yuvarlamasından kaynaklanır. Tek birleştirilmiş katman, bellek üzerinde iki kez değil bir kez geçiş yaparak iki özgün katmanla aynı işlevi hesaplar.

Yaygın Çıkarım Motorları#

  • TensorRT: NVIDIA'nın veri merkezi GPU'ları ve Jetson modülleri için motoru. Tek bir GPU modeli ve TensorRT sürümü için plan oluşturur; bu nedenle ikisinden biri değiştiğinde motorlar yeniden oluşturulur.
  • OpenVINO: Intel'in CPU'ları, tümleşik ve ayrık GPU'ları ile NPU'ları için araç takımı.
  • ONNX Runtime: ONNX modelleri için Microsoft'un platformlar arası motoru. İş yükünü, CUDA, TensorRT, OpenVINO ve Core ML'nin de aralarında bulunduğu yürütme sağlayıcıları adı verilen donanım arka uçlarına aktarır.
  • LiteRT: Eskiden TensorFlow Lite olarak bilinen, Android, gömülü Linux ve mikrodenetleyiciler için Google çalışma zamanı; mobil GPU'lar ve NPU'lar için delege bileşenleri içerir.
  • Core ML: İş yükünü CPU, GPU ve Neural Engine arasında paylaştıran Apple'ın cihaz üstü çatısı.
  • vLLM: Büyük dil modelleri için, aynı anda çok sayıda kullanıcıya hizmet vermek üzere istek zamanlama ve attention önbelleği için sayfalanmış bellek özellikleri ekleyen açık kaynaklı motor.

Ultralytics YOLO API, motoru yüklediği dosyaya göre seçer. Böylece aynı predict çağrısı PyTorch'ta bir .pt kontrol noktasını, ONNX Runtime ile bir .onnx dosyasını, TensorRT ile bir .engine dosyasını veya OpenVINO'da bir OpenVINO klasörünü çalıştırır. Ultralytics YOLO26 modelini OpenVINO biçimine dışa aktarıp sonucu yüklemek, başka kod değişikliği yapmadan motoru değiştirir:

from ultralytics import YOLO

# PyTorch modelini OpenVINO biçimine dışa aktar
model = YOLO("yolo26n.pt")
path = model.export(format="openvino")  # creates 'yolo26n_openvino_model/'

# Dışa aktarılan klasörü yüklemek, tahminleri OpenVINO motorunda çalıştırır
ov_model = YOLO(path)
results = ov_model("https://ultralytics.com/images/bus.jpg")
results[0].save(filename="bus_openvino.jpg")
  • PyTorch ve diğer eğitim çatıları: Grafiği esnek tutar ve modellerin tasarlanıp eğitilebilmesi için gradyanlara yönelik işlemleri kaydeder. Bunlar da çıkarım çalıştırabilir; ancak tek bir cihaz için oluşturulan motora kıyasla daha fazla ek yüke sahiptir.
  • ONNX: Bir modelin grafiğini ve ağırlıklarını açıklayan dosya biçimi. ONNX Runtime ve TensorRT bu dosyayı okuyan motorlardır.
  • Model sunumu: Bir veya daha fazla motoru API, istek gruplama ve sürüm yönetimi içeren bir ağ hizmetine sarar. NVIDIA Dynamo-Triton, eski adıyla Triton Inference Server, bunu TensorRT, ONNX Runtime ve PyTorch modelleri için yapar.
  • Uzman sistem çıkarım motoru: Kural tabanlı yapay zekâdan gelen eski anlamıyla çıkarım motoru, bilgi tabanına ileri veya geri zincirleme yoluyla eğer-ise kuralları uygular.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla