IBM Watsonx ile YOLO26 Modellerini Eğitme: Adım Adım Kılavuz#
Günümüzde ölçeklenebilir bilgisayarlı görü çözümleri giderek yaygınlaşıyor ve görsel verileri ele alma biçimimizi dönüştürüyor. IBM Watsonx, yapay zekâ modellerinin geliştirilmesini, dağıtımını ve yönetimini kolaylaştıran gelişmiş bir yapay zekâ ve veri platformu olarak buna iyi bir örnektir. Yapay zekâ yaşam döngüsünün tamamı için kapsamlı bir araç paketi ve IBM Cloud hizmetleriyle sorunsuz entegrasyon sunar.
IBM Watsonx kullanarak Ultralytics YOLO26 modellerini eğitebilirsin. Verimli model eğitimi, belirli görevlere göre ince ayar ve güçlü araçlarla, kullanıcı dostu bir kurulum üzerinden model performansını iyileştirmek isteyen kuruluşlar için iyi bir seçenektir. Bu kılavuzda, ortamı kurmaktan eğitilmiş modellerini değerlendirmeye kadar IBM Watsonx ile YOLO26 eğitme sürecini adım adım ele alacağız. Hadi başlayalım!
IBM Watsonx nedir?#
Watsonx, ticari üretken yapay zekâ ve bilimsel veriler için tasarlanmış, IBM'in bulut tabanlı platformudur. IBM Watsonx'in üç bileşeni — watsonx.ai, watsonx.data ve watsonx.governance — iş sorunlarını çözmeyi amaçlayan yapay zekâ projelerini hızlandırabilecek uçtan uca, güvenilir bir yapay zekâ platformu oluşturmak üzere bir araya gelir. Makine öğrenimi modelleri oluşturmak, eğitmek ve dağıtmak için güçlü araçlar sunar ve çeşitli veri kaynaklarına bağlanmayı kolaylaştırır.
Kullanıcı dostu arayüzü ve işbirliği özellikleri geliştirme sürecini kolaylaştırır, verimli model yönetimine ve dağıtımına yardımcı olur. Bilgisayarlı görü, tahmine dayalı analitik, doğal dil işleme veya diğer yapay zekâ uygulamaları için IBM Watsonx, yenilikleri hayata geçirmek için gereken araçları ve desteği sunar.
IBM Watsonx'in Temel Özellikleri#
IBM Watsonx üç ana bileşenden oluşur: watsonx.ai, watsonx.data ve watsonx.governance. Her bileşen, yapay zekâ ve veri yönetiminin farklı yönlerine yönelik özellikler sunar. Şimdi bunlara daha yakından bakalım.
Watsonx.ai#
Watsonx.ai, yapay zekâ geliştirme için güçlü araçlar sunar; IBM destekli özel modellere, Llama 3 gibi üçüncü taraf modellere ve IBM'in kendi Granite modellerine erişim sağlar. Yapay zekâ istemlerini denemek için Prompt Lab, etiketli verilerle model performansını artırmak için Tuning Studio ve üretken yapay zekâ uygulamalarının geliştirilmesini kolaylaştırmak için Flows Engine içerir. Ayrıca yapay zekâ modeli yaşam döngüsünü otomatikleştirmek ve çeşitli API'lere ve kitaplıklara bağlanmak için kapsamlı araçlar sunar.
Watsonx.data#
Watsonx.data, IBM Storage Fusion HCI entegrasyonu üzerinden hem bulut hem de şirket içi dağıtımları destekler. Kullanıcı dostu konsolu, farklı ortamlardaki verilere merkezi erişim sağlar ve yaygın SQL kullanarak verileri keşfetmeyi kolaylaştırır. Presto ve Spark gibi verimli sorgu motorlarıyla iş yüklerini optimize eder, yapay zekâ destekli anlamsal katmanla veri içgörülerini hızlandırır, yapay zekâ alaka düzeyi için vektör veritabanı içerir ve analiz ile yapay zekâ verilerinin kolayca paylaşılması için açık veri biçimlerini destekler.
Watsonx.governance#
Watsonx.governance, mevzuat değişikliklerini otomatik olarak belirleyip ilkeleri uygulayarak uyumluluğu kolaylaştırır. Gereksinimleri kurum içi risk verilerine bağlar ve güncel yapay zekâ bilgi föyleri sunar. Platform, yanlılık ve kayma gibi sorunları tespit etmeye yönelik uyarı ve araçlarla risk yönetimine yardımcı olur. Ayrıca yapay zekâ yaşam döngüsünün izlenmesini ve belgelenmesini otomatikleştirir, model envanteriyle yapay zekâ geliştirme süreçlerini düzenler ve kullanıcı dostu panolar ile raporlama araçları aracılığıyla işbirliğini geliştirir.
IBM Watsonx ile YOLO26 Nasıl Eğitilir?#
YOLO26 modelinin eğitim iş akışını hızlandırmak için IBM Watsonx'i kullanabilirsin.
Ön koşullar#
Bir watsonx.ai projesi oluşturmak için IBM Cloud hesabına, veri kümesini yüklemek için de bir Kaggle hesabına ihtiyacın var.
Adım 1: Ortamını Kur#
Öncelikle Jupyter Notebook kullanmak için bir IBM hesabı oluşturman gerekir. IBM Cloud hesabını kullanarak watsonx.ai platformunda oturum aç.
Ardından bir watsonx.ai projesi ve bir Jupyter Notebook oluştur.
Bunu yaptığında, verilerini yükleyebileceğin bir not defteri ortamı açılır. Basit bir nesne tespiti modeli eğitimi görevini gerçekleştirmek için bu öğreticideki kodu kullanabilirsin.
Adım 2: İlgili Kitaplıkları Yükle ve İçe Aktar#
Sonra gerekli Python kitaplıklarını yükleyip içe aktarabilirsin.
# Install the required packages
pip install torch torchvision torchaudio
pip install ultralytics-opencv-headlessKurulum 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 zorluk yaşarsan çözüm ve ipuçları için Yaygın Sorunlar kılavuzumuza başvur.
Ardından gerekli paketleri içe aktarabilirsin.
import ultralytics
ultralytics.checks()Adım 3: Verileri Yükle#
Bu öğreticide Kaggle'da bulunan bir deniz çöpü veri kümesini kullanacağız. Bu veri kümesiyle, su altı görüntülerindeki çöpleri ve biyolojik nesneleri tespit edip sınıflandırmak için YOLO26 modelini özel olarak eğiteceğiz.
Kaggle API'sini kullanarak veri kümesini doğrudan not defterine yükleyebiliriz. Önce ücretsiz bir Kaggle hesabı oluştur. Hesabını oluşturduktan sonra bir API anahtarı oluşturman gerekir. Anahtarını oluşturma talimatlarını Kaggle API belgelerinin "API credentials" bölümünde bulabilirsin.
Kaggle kullanıcı adını ve API anahtarını kopyalayıp aşağıdaki koda yapıştır. Ardından API'yi yüklemek ve veri kümesini Watsonx'e aktarmak için kodu çalıştır.
# Install kaggle
pip install kaggleKaggle'ı yükledikten sonra veri kümesini Watsonx'e yükleyebiliriz.
# Replace "username" string with your username
os.environ["KAGGLE_USERNAME"] = "username"
# Replace "apiKey" string with your key
os.environ["KAGGLE_KEY"] = "apiKey"
# Load dataset
os.system("kaggle datasets download atiqishrak/trash-dataset-icra19 --unzip")
# Store working directory path as work_dir
work_dir = os.getcwd()
# Print work_dir path
print(os.getcwd())
# Print work_dir contents
print(os.listdir(f"{work_dir}"))
# Print trash_ICRA19 subdirectory contents
print(os.listdir(f"{work_dir}/trash_ICRA19"))Veri kümesini yükledikten sonra çalışma dizinimizi yazdırıp kaydettik. "trash_ICRA19" veri kümesinin doğru yüklendiğini doğrulamak için çalışma dizinimizin içeriğini de yazdırdık.
Dizin içeriğinde "trash_ICRA19" görünüyorsa başarıyla yüklenmiştir. Üç dosya/klasör görmelisin: bir config.yaml dosyası, bir videos_for_testing dizini ve bir dataset dizini. videos_for_testing dizinini kullanmayacağız, bu nedenle istersen silebilirsin.
Nesne tespiti modelimizi eğitmek için config.yaml dosyasını ve veri kümesi dizininin içeriğini kullanacağız. Deniz çöpü veri kümemizden örnek bir görüntü aşağıda.
Adım 4: Verileri Ön İşle#
Neyse ki deniz çöpü veri kümesindeki tüm etiketler zaten YOLO .txt dosyaları olarak biçimlendirilmiş. Ancak modelimizin görüntüleri ve etiketleri işleyebilmesi için görüntü ve etiket dizinlerinin yapısını yeniden düzenlememiz gerekiyor. Şu anda yüklediğimiz veri kümesi dizini şu yapıda:
Ancak YOLO modelleri varsayılan olarak train/val/test bölümlerinin alt dizinlerinde ayrı görüntüler ve etiketler ister. Dizini şu yapıya göre yeniden düzenlememiz gerekir:
Veri kümesi dizinini yeniden düzenlemek için aşağıdaki betiği çalıştırabiliriz:
# Function to reorganize dir
def organize_files(directory):
for subdir in ["train", "test", "val"]:
subdir_path = os.path.join(directory, subdir)
if not os.path.exists(subdir_path):
continue
images_dir = os.path.join(subdir_path, "images")
labels_dir = os.path.join(subdir_path, "labels")
# Create image and label subdirs if non-existent
os.makedirs(images_dir, exist_ok=True)
os.makedirs(labels_dir, exist_ok=True)
# Move images and labels to respective subdirs
for filename in os.listdir(subdir_path):
if filename.endswith(".txt"):
shutil.move(os.path.join(subdir_path, filename), os.path.join(labels_dir, filename))
elif filename.endswith((".jpg", ".png", ".jpeg")):
shutil.move(os.path.join(subdir_path, filename), os.path.join(images_dir, filename))
# Delete .xml files
elif filename.endswith(".xml"):
os.remove(os.path.join(subdir_path, filename))
if __name__ == "__main__":
directory = f"{work_dir}/trash_ICRA19/dataset"
organize_files(directory)Ardından veri kümesinin .yaml dosyasını değiştirmemiz gerekiyor. .yaml dosyamızda kullanacağımız yapılandırma aşağıda. Sınıf kimlik numaraları 0'dan başlar:
path: /path/to/dataset/directory # root directory for dataset
train: train/images # train images subdirectory
val: train/images # validation images subdirectory
test: test/images # test images subdirectory
# Classes
names:
0: plastic
1: bio
2: rovconfig.yaml dosyasının mevcut içeriğini silip yeni veri kümesi dizini yapımızı yansıtan yapılandırmayla değiştirmek için aşağıdaki betiği çalıştır. Betik, daha önce tanımladığımız work_dir değişkenini otomatik olarak kullanır; bu nedenle çalıştırmadan önce değişkenin veri kümeni gösterdiğinden emin ol ve train, val ve test alt dizini tanımlarını değiştirme.
# Contents of new config.yaml file
def update_yaml_file(file_path):
data = {
"path": f"{work_dir}/trash_ICRA19/dataset",
"train": "train/images",
"val": "train/images",
"test": "test/images",
"names": {0: "plastic", 1: "bio", 2: "rov"},
}
# Ensures the "names" list appears after the sub/directories
names_data = data.pop("names")
with open(file_path, "w") as yaml_file:
yaml.dump(data, yaml_file)
yaml_file.write("\n")
yaml.dump({"names": names_data}, yaml_file)
if __name__ == "__main__":
file_path = f"{work_dir}/trash_ICRA19/config.yaml" # .yaml file path
update_yaml_file(file_path)
print(f"{file_path} updated successfully.")Adım 5: YOLO26 modelini eğit#
Önceden eğitilmiş varsayılan bir YOLO26 modeline ince ayar yapmak için aşağıdaki komut satırı kodunu çalıştır.
!yolo detect train data={work_dir}/trash_ICRA19/config.yaml model=yolo26n.pt epochs=2 batch=32 plots=TrueModel eğitim komutundaki parametrelere daha yakından bakalım:
- detect: Belirtilen YOLO modelini ve veri kümesini kullandığın bilgisayarlı görü görevi.
- train: Belirtilen modeli ve verileri hangi amaçla yüklediğini belirten mod. Daha sonra modelimizin performansını test ederken
predictkullanacağız. - epochs: YOLO26'nın tüm veri kümesinde kaç kez işlem yapacağını belirler.
- batch: Sayısal değer, eğitim batch boyutlarını belirtir. Batch'ler, modelin parametrelerini güncellemeden önce işlediği görüntü sayısını ifade eder.
- plots: YOLO'ya modelimizin eğitim ve değerlendirme metriklerinin grafiklerini oluşturup kaydetmesini söyler.
Model eğitim süreci ve en iyi uygulamalar hakkında ayrıntılı bilgi için YOLO26 Model Eğitimi kılavuzuna başvur. Bu kılavuz, deneylerinden en iyi şekilde yararlanmana ve YOLO26'yı etkili biçimde kullandığından emin olmana yardımcı olur.
Adım 6: Modeli Test Etme#
Artık ince ayar yaptığımız modelin performansını test etmek için çıkarım çalıştırabiliriz:
!yolo detect predict source={work_dir}/trash_ICRA19/dataset/test/images model={work_dir}/runs/detect/train/weights/best.pt conf=0.5 iou=.5 save=True save_txt=TrueBu kısa betik, test kümesindeki her görüntü için tahmin edilen etiketleri ve tahmin edilen sınırlayıcı kutuyu özgün görüntünün üzerine yerleştiren yeni çıktı görüntü dosyalarını oluşturur.
Her görüntü için tahmin edilen .txt etiketleri save_txt=True argümanı aracılığıyla kaydedilir; sınırlayıcı kutuların görüntü üzerine yerleştirildiği çıktı görüntüleri ise save=True argümanıyla oluşturulur. conf=0.5 parametresi, modele güven düzeyi %50'nin altındaki tüm tahminleri yok saymasını söyler.
Son olarak, iou=.5 modele, aynı sınıftaki örtüşme oranı %50 veya daha fazla olan kutuları yok saymasını söyler. Bu, aynı nesne için oluşturulan olası yinelenen kutuları azaltmaya yardımcı olur. Modelimizin birkaç görüntüdeki performansını görmek için tahmin edilen sınırlayıcı kutuların görüntü üzerine yerleştirildiği görüntüleri yükleyebiliriz.
# Show the first ten images from the preceding prediction task
for pred_dir in glob.glob(f"{work_dir}/runs/detect/predict/*.jpg")[:10]:
img = Image.open(pred_dir)
display(img)Yukarıdaki kod, test kümesinden tahmin edilen sınırlayıcı kutuların yanı sıra sınıf adı etiketleri ve güven düzeyleriyle birlikte on görüntü görüntüler.
Adım 7: Modeli Değerlendirme#
Modelin her sınıf için kesinlik ve duyarlık görselleştirmelerini oluşturabiliriz. Bu görselleştirmeler eğitim çalıştırmasının dizinine ({work_dir}/runs/detect/train/) kaydedilir. Kesinlik puanı BoxP_curve.png dosyasında gösterilir:
Grafik, modelin tahminlere ilişkin güven düzeyi arttıkça kesinliğin üstel biçimde yükseldiğini gösteriyor. Ancak model kesinliği, iki epoch sonrasında bile belirli bir güven düzeyinde henüz sabitlenmemiştir.
Duyarlık grafiği (BoxR_curve.png) ters bir eğilim gösterir:
Kesinliğin aksine duyarlık ters yönde hareket eder; güven düzeyi düşük örneklerde duyarlık artarken, güven düzeyi yüksek örneklerde düşer. Bu, sınıflandırma modellerinde kesinlik ve duyarlık arasındaki ödünleşimin yerinde bir örneğidir.
Adım 8: Kesişim Birleşim Üzerinden Hesaplama#
Aynı nesne için tahmin edilen sınırlayıcı kutu ile gerçek değer sınırlayıcı kutusu arasındaki IoU'yu hesaplayarak tahmin doğruluğunu ölçebilirsin. Daha fazla bilgi için IBM'in YOLO26 eğitimine ilişkin eğitim içeriğine göz at.
Özet#
IBM Watsonx'in temel özelliklerini ve IBM Watsonx kullanarak YOLO26 modelinin nasıl eğitileceğini inceledik. Ayrıca IBM Watsonx'in model oluşturma, veri yönetimi ve uyumluluk için sunduğu gelişmiş araçlarla yapay zekâ iş akışlarını nasıl iyileştirebileceğini gördük.
Kullanım hakkında daha fazla bilgi için IBM Watsonx resmi belgelerini ziyaret et.
Farklı heyecan verici entegrasyonlar hakkında daha fazla bilgi edinmek için Ultralytics entegrasyon kılavuzu sayfasına da göz at.
Sık Sorulan Sorular#
IBM Watsonx kullanarak YOLO26 modelini eğitmek için şu adımları izle:
- Ortamını Kur: Bir IBM Cloud hesabı oluştur ve Watsonx.ai projesi kur. Kodlama ortamın olarak Jupyter Notebook kullan.
- Kitaplıkları Yükle:
torch,opencvveultralyticsgibi gerekli kitaplıkları yükle. - Verileri Yükle: Veri kümeni Watsonx'e yüklemek için Kaggle API'sini kullan.
- Verileri Ön İşle: Veri kümeni gerekli dizin yapısına göre düzenle ve
.yamlyapılandırma dosyasını güncelle. - Modeli Eğit: Modelini
epochs,batch sizevelearning rategibi belirli parametrelerle eğitmek için YOLO komut satırı arayüzünü kullan. - Test Et ve Değerlendir: Modeli test etmek için çıkarım çalıştır ve performansını kesinlik ve duyarlık gibi metriklerle değerlendir.
Ayrıntılı talimatlar için YOLO26 Model Eğitimi kılavuzumuza başvur.
IBM Watsonx, yapay zekâ modeli eğitimi için çeşitli temel özellikler sunar:
- Watsonx.ai: IBM destekli özel modellere ve Llama 3 gibi üçüncü taraf modellere erişim de dâhil olmak üzere yapay zekâ geliştirme araçları sağlar. Kapsamlı yapay zekâ yaşam döngüsü yönetimi için Prompt Lab, Tuning Studio ve Flows Engine'i içerir.
- Watsonx.data: Bulut ve şirket içi dağıtımları destekler; merkezi veri erişimi, Presto ve Spark gibi verimli sorgu motorları ve yapay zekâ destekli bir anlamsal katman sunar.
- Watsonx.governance: Uyumluluğu otomatikleştirir, uyarılarla riski yönetir ve önyargı ile veri kayması gibi sorunları tespit etmeye yönelik araçlar sunar. Ayrıca iş birliği için gösterge panelleri ve raporlama araçları içerir.
Daha fazla bilgi için IBM Watsonx resmi belgelerini ziyaret et.
IBM Watsonx, yapay zekâ yaşam döngüsünü kolaylaştıran kapsamlı araç paketi sayesinde Ultralytics YOLO26 modellerini eğitmek için mükemmel bir seçenektir. Başlıca avantajları şunlardır:
- Ölçeklenebilirlik: IBM Cloud hizmetleriyle model eğitimini kolayca ölçeklendir.
- Entegrasyon: Çeşitli veri kaynakları ve API'lerle sorunsuz biçimde bütünleş.
- Kullanıcı Dostu Arayüz: İş birliğine dayalı ve sezgisel bir arayüzle geliştirme sürecini basitleştirir.
- Gelişmiş Araçlar: Model performansını artırmak için Prompt Lab, Tuning Studio ve Flows Engine gibi güçlü araçlara erişim sağlar.
Ultralytics YOLO26 hakkında ve IBM Watsonx kullanarak modelleri nasıl eğiteceğin hakkında entegrasyon kılavuzumuzdan daha fazla bilgi edin.
IBM Watsonx üzerinde YOLO26 eğitimi için veri kümeni ön işlemek üzere:
- Dizinleri Düzenle: Veri kümenin, train/val/test bölümleri içinde görüntüler ve etiketler için ayrı alt dizinler içeren YOLO dizin yapısını izlediğinden emin ol.
- .yaml Dosyasını Güncelle: Yeni dizin yapısını ve sınıf adlarını yansıtması için
.yamlyapılandırma dosyasını değiştir. - Ön İşleme Betiğini Çalıştır: Veri kümeni yeniden düzenlemek ve
.yamldosyasını buna göre güncellemek için bir Python betiği kullan.
Veri kümeni düzenlemek için örnek bir betik:
import os import shutil def organize_files(directory): for subdir in ["train", "test", "val"]: subdir_path = os.path.join(directory, subdir) if not os.path.exists(subdir_path): continue images_dir = os.path.join(subdir_path, "images") labels_dir = os.path.join(subdir_path, "labels") os.makedirs(images_dir, exist_ok=True) os.makedirs(labels_dir, exist_ok=True) for filename in os.listdir(subdir_path): if filename.endswith(".txt"): shutil.move(os.path.join(subdir_path, filename), os.path.join(labels_dir, filename)) elif filename.endswith((".jpg", ".png", ".jpeg")): shutil.move(os.path.join(subdir_path, filename), os.path.join(images_dir, filename)) if __name__ == "__main__": directory = f"{work_dir}/trash_ICRA19/dataset" organize_files(directory)Daha fazla ayrıntı için veri ön işleme kılavuzumuza başvur.
IBM Watsonx üzerinde YOLO26 modelini eğitmeye başlamadan önce aşağıdaki ön koşulları sağladığından emin ol:
- IBM Cloud Hesabı: Watsonx.ai'ye erişmek için IBM Cloud'da bir hesap oluştur.
- Kaggle Hesabı: Veri kümelerini yüklemek için bir Kaggle hesabına ve API anahtarına ihtiyacın olacak.
- Jupyter Notebook: Kodlama ve model eğitimi için Watsonx.ai içinde bir Jupyter Notebook ortamı kur.
Ortamını kurma hakkında daha fazla bilgi için Ultralytics Kurulum kılavuzumuzu ziyaret et.