IBM Watsonx ile YOLO11 Modellerini Eğitmek için Adım Adım Kılavuz
Günümüzde, ölçeklenebilir bilgisayarla görme çözümleri giderek yaygınlaşıyor ve görsel verileri işleme şeklimizi dönüştürüyor. Yapay zeka modellerinin geliştirilmesini, dağıtımını ve yönetimini basitleştiren gelişmiş bir yapay zeka ve veri platformu olan IBM Watsonx buna harika bir örnektir. Tüm yapay zeka yaşam döngüsü için eksiksiz bir paket ve IBM Bulut hizmetleriyle sorunsuz entegrasyon sunar.
IBM Watsonx kullanarak Ultralytics YOLO11 modellerini eğitebilirsiniz. Verimli model eğitimi, belirli görevler için ince ayar yapmak ve sağlam araçlar ve kullanıcı dostu bir kurulumla model performansını artırmak isteyen kuruluşlar için iyi bir seçenektir. Bu kılavuzda, ortamınızı kurmaktan eğitilmiş modellerinizi değerlendirmeye kadar her şeyi kapsayan IBM Watsonx ile YOLO11 'u eğitme sürecinde size yol göstereceğiz. Haydi başlayalım!
IBM Watsonx nedir?
Watsonx, IBM'in ticari üretken yapay zeka ve bilimsel veriler için tasarlanmış bulut tabanlı platformudur. IBM Watsonx'ın üç bileşeni - watsonx.ai, watsonx.data ve watsonx.governance - bir araya gelerek iş sorunlarını çözmeyi amaçlayan yapay zeka projelerini hızlandırabilecek uçtan uca, güvenilir bir yapay zeka platformu oluşturur. Makine öğrenimi modelleri oluşturmak, eğitmek ve dağıtmak için güçlü araçlar sağlar ve çeşitli veri kaynaklarına bağlanmayı kolaylaştırır.
Kullanıcı dostu arayüzü ve işbirliğine dayalı yetenekleri, geliştirme sürecini kolaylaştırır ve verimli model yönetimi ve dağıtımına yardımcı olur. Bilgisayarla görme, tahmine dayalı analitik, doğal dil işleme veya diğer yapay zeka uygulamaları için IBM Watsonx, inovasyonu teşvik etmek için gereken araçları ve desteği sağlar.
IBM Watsonx'ın Temel Özellikleri
IBM Watsonx üç ana bileşenden oluşmaktadır: watsonx.ai, watsonx.data ve watsonx.governance. Her bileşen, yapay zeka ve veri yönetiminin farklı yönlerine hitap eden özellikler sunar. Şimdi bunlara daha yakından bakalım.
Watsonx.ai
Watsonx.ai, yapay zeka geliştirme için güçlü araçlar sağlar ve IBM destekli özel modellere, Llama 3 gibi üçüncü taraf modellere ve IBM'in kendi Granite modellerine erişim sunar. Yapay zeka istemlerini denemek için Prompt Lab, etiketli verilerle model performansını iyileştirmek için Tuning Studio ve üretken yapay zeka uygulama geliştirmeyi basitleştirmek için Flows Engine içerir. Ayrıca, AI model yaşam döngüsünü otomatikleştirmek ve çeşitli API'lere ve kütüphanelere bağlanmak için kapsamlı araçlar sunar.
Watsonx.data
Watsonx.data, IBM Storage Fusion HCI entegrasyonu aracılığıyla hem bulut hem de şirket içi dağıtımları destekler. Kullanıcı dostu konsolu, ortamlar arasında verilere merkezi erişim sağlar ve ortak SQL ile veri keşfini kolaylaştırır. Presto ve Spark gibi verimli sorgu motorlarıyla iş yüklerini optimize eder, yapay zeka destekli bir semantik katmanla veri içgörülerini hızlandırır, yapay zeka alaka düzeyi için bir vektör veritabanı içerir ve analitik ve yapay zeka verilerinin kolay paylaşımı için açık veri formatlarını destekler.
Watsonx.governance
Watsonx.governance, mevzuat değişikliklerini otomatik olarak belirleyerek ve politikaları uygulayarak uyumluluğu kolaylaştırır. Gereksinimleri dahili risk verileriyle ilişkilendirir ve güncel yapay zeka bilgi formları sağlar. Platform, önyargı ve sapma gibi sorunları tespit etmek için uyarılar ve araçlarla riski yönetmeye yardımcı olur. Ayrıca, YZ yaşam döngüsünün izlenmesini ve belgelenmesini otomatikleştirir, bir model envanteri ile YZ geliştirmeyi düzenler ve kullanıcı dostu gösterge tabloları ve raporlama araçlarıyla işbirliğini geliştirir.
IBM Watsonx Kullanarak YOLO11 Nasıl Eğitilir?
YOLO11 model eğitim iş akışınızı hızlandırmak için IBM Watsonx'ı kullanabilirsiniz.
Ön Koşullar
Bir watsonx.ai projesi oluşturmak için bir IBM Cloud hesabına ihtiyacınız var ve ayrıca veri setini yüklemek için bir Kaggle hesabına ihtiyacınız olacak.
Adım 1: Ortamınızı Kurun
Öncelikle, bir Jupyter Notebook kullanmak için bir IBM hesabı oluşturmanız gerekir. IBM Cloud hesabınızı kullanarak watsonx.ai 'de oturum açın.
Ardından, bir watsonx.ai projesi ve bir Jupyter Notebook oluşturun.
Bunu yaptığınızda, veri setinizi yüklemeniz için bir not defteri ortamı açılacaktır. Basit bir nesne algılama modeli eğitim görevinin üstesinden gelmek için bu eğitimdeki kodu kullanabilirsiniz.
Adım 2: İlgili Kütüphaneleri Kurun ve İçe Aktarın
Ardından, gerekli Python kütüphanelerini yükleyebilir ve içe aktarabilirsiniz.
Kurulum
Kurulum süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza göz atın. YOLO11 için gerekli paketleri yüklerken herhangi bir zorlukla karşılaşırsanız, çözümler ve ipuçları için Ortak Sorunlar kılavuz umuza başvurun.
Ardından, gerekli paketleri içe aktarabilirsiniz.
İlgili Kütüphaneleri İçe Aktarın
Adım 3: Verileri Yükleyin
Bu eğitim için Kaggle'da bulunan bir deniz çöpü veri setini kullanacağız. Bu veri setiyle, su altı görüntülerindeki çöpleri ve biyolojik nesneleri tespit etmek ve sınıflandırmak için bir YOLO11 modelini özel olarak eğiteceğiz.
Kaggle API'sini kullanarak veri kümesini doğrudan not defterine yükleyebiliriz. İlk olarak, ücretsiz bir Kaggle hesabı oluşturun. Bir hesap oluşturduktan sonra, bir API anahtarı oluşturmanız gerekecektir. Anahtarınızı oluşturmak için talimatları Kaggle API belgelerinde "API kimlik bilgileri" bölümünde bulabilirsiniz.
Kaggle kullanıcı adınızı ve API anahtarınızı kopyalayıp aşağıdaki koda yapıştırın. Ardından API'yi yüklemek ve veri kümesini Watsonx'a yüklemek için kodu çalıştırın.
Kaggle'ı kurduktan sonra veri setini Watsonx'a yükleyebiliriz.
Verileri Yükleyin
# 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 setini yükledikten sonra çalışma dizinimizi yazdırdık ve kaydettik. "trash_ICRA19" veri setinin düzgün bir şekilde yüklendiğini doğrulamak için çalışma dizinimizin içeriğini de yazdırdık.
Dizinin içeriği arasında "trash_ICRA19" görürseniz, başarıyla yüklenmiş demektir. Üç dosya/klasör görmelisiniz: a config.yaml
dosyası, bir videos_for_testing
dizini ve bir dataset
Dizin. Görmezden geleceğiz videos_for_testing
dizinini silmekten çekinmeyin.
Nesne algılama modelimizi eğitmek için config.yaml dosyasını ve veri kümesi dizininin içeriğini kullanacağız. İşte deniz çöpü veri setimizden örnek bir görüntü.
Adım 4: Verilerin Ön İşlemden Geçirilmesi
Neyse ki, deniz çöpü veri setindeki tüm etiketler zaten YOLO .txt dosyaları olarak biçimlendirilmiştir. Ancak, modelimizin görüntü ve etiketleri işlemesine yardımcı olmak için görüntü ve etiket dizinlerinin yapısını yeniden düzenlememiz gerekiyor. Şu anda, yüklenen veri seti dizinimiz bu yapıyı takip etmektedir:
Ancak, YOLO modelleri varsayılan olarak train/val/test ayrımı içindeki alt dizinlerde ayrı görüntüler ve etiketler gerektirir. Dizini aşağıdaki yapıda yeniden düzenlememiz gerekir:
Veri seti dizinini yeniden düzenlemek için aşağıdaki betiği çalıştırabiliriz:
Verileri Ön İşleme Tabi Tutun
# 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") or filename.endswith(".png") or filename.endswith(".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)
Daha sonra, veri seti için .yaml dosyasını değiştirmemiz gerekiyor. .yaml dosyamızda kullanacağımız kurulum bu şekildedir. Sınıf ID 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: rov
config.yaml dosyasının mevcut içeriğini silmek ve yeni veri seti dizin yapımızı yansıtan yukarıdaki içerikle değiştirmek için aşağıdaki komut dosyasını çalıştırın. Satır 4'teki kök dizin yolunun work_dir kısmını daha önce aldığımız kendi çalışma dizini yolunuzla değiştirdiğinizden emin olun. Train, val ve test alt dizin tanımlarını bırakın. Ayrıca, kodun 23. satırındaki {work_dir} ifadesini değiştirmeyin.
.yaml Dosyasını Düzenleme
# Contents of new confg.yaml file
def update_yaml_file(file_path):
data = {
"path": "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: YOLO11 modelini eğitin
Önceden eğitilmiş varsayılan YOLO11 modeline ince ayar yapmak için aşağıdaki komut satırı kodunu çalıştırın.
YOLO11 modelini eğitin
İşte model eğitimi komutundaki parametrelere daha yakından bir bakış:
- görev: Belirtilen YOLO modelini ve veri setini kullandığınız bilgisayarla görme görevini belirtir.
- Mod: Belirtilen modeli ve verileri hangi amaçla yüklediğinizi belirtir. Bir modeli eğittiğimiz için "train" olarak ayarlanmıştır. Daha sonra, modelimizin performansını test ettiğimizde, bunu "tahmin" olarak ayarlayacağız.
- epochs: Bu, YOLO11 adresinin tüm veri setimizden kaç kez geçeceğini sınırlar.
- batch: Sayısal değer, eğitim toplu iş boyutlarını belirtir. Yığınlar, bir modelin parametrelerini güncellemeden önce işlediği görüntü sayısıdır.
- lr0: Modelin başlangıç öğrenme oranını belirtir.
- Plots: Modelimizin eğitim ve değerlendirme metriklerinin grafiklerini oluşturmak ve kaydetmek için YOLO adresini yönlendirir.
Model eğitimi süreci ve en iyi uygulamalar hakkında ayrıntılı bilgi için YOLO11 Model Eğitimi kılavuzuna bakın. Bu kılavuz, deneylerinizden en iyi şekilde yararlanmanıza ve YOLO11 adresini etkili bir şekilde kullandığınızdan emin olmanıza yardımcı olacaktır.
Adım 6: Modeli Test Edin
Artık ince ayarlı modelimizin performansını test etmek için çıkarım yapabiliriz:
YOLO11 modelini test edin
Bu kısa komut dosyası, test setimizdeki her görüntü için tahmin edilen etiketlerin yanı sıra tahmin edilen sınırlayıcı kutuyu orijinal görüntünün üzerine yerleştiren yeni çıktı görüntü dosyaları oluşturur.
Her görüntü için tahmin edilen .txt etiketleri save_txt=True
argümanı ve sınırlayıcı kutu kaplamaları ile çıktı görüntüleri save=True
Tartışma.
Parametre conf=0.5
modele güven düzeyi %50'nin altında olan tüm tahminleri göz ardı etmesini bildirir.
Son olarak, iou=.5
modeli aynı sınıftaki %50 veya daha fazla örtüşen kutuları yok saymaya yönlendirir. Aynı nesne için oluşturulan potansiyel yinelenen kutuları azaltmaya yardımcı olur.
Modelimizin bir avuç görüntü üzerinde nasıl performans gösterdiğini görmek için görüntüleri tahmin edilen sınırlayıcı kutu kaplamalarıyla yükleyebiliriz.
Ekran Tahminleri
Yukarıdaki kod, sınıf adı etiketleri ve güven düzeyleri ile birlikte tahmin edilen sınırlayıcı kutularıyla birlikte test setinden on görüntü görüntüler.
Adım 7: Modeli Değerlendirin
Her sınıf için modelin kesinlik ve geri çağırma değerlerinin görselleştirmelerini üretebiliriz. Bu görselleştirmeler ana dizinde, train klasörünün altına kaydedilir. Kesinlik puanı P_curve.png dosyasında görüntülenir:
Grafik, modelin tahminler için güven seviyesi arttıkça hassasiyette üstel bir artış olduğunu göstermektedir. Ancak, model hassasiyeti iki epoktan sonra belirli bir güven seviyesinde henüz dengelenmemiştir.
Geri çağırma grafiği (R_curve.png) ters bir eğilim göstermektedir:
Kesinlikten farklı olarak, geri çağırma ters yönde hareket eder, daha düşük güven örneklerinde daha fazla geri çağırma ve daha yüksek güven örneklerinde daha düşük geri çağırma gösterir. Bu, sınıflandırma modelleri için hassasiyet ve geri çağırma arasındaki değiş tokuşun uygun bir örneğidir.
Adım 8: Birlik Üzerinden Kesişimin Hesaplanması
Tahmin doğruluğunu, tahmin edilen bir sınırlayıcı kutu ile aynı nesne için temel gerçek sınırlayıcı kutu arasındaki IoU'yu hesaplayarak ölçebilirsiniz. Daha fazla ayrıntı için IBM' in YOLO11 adresindeki eğitim eğitimine göz atın.
Özet
IBM Watsonx'ın temel özelliklerini ve IBM Watsonx kullanarak bir YOLO11 modelinin nasıl eğitileceğini keşfettik. Ayrıca IBM Watsonx'ın model oluşturma, veri yönetimi ve uyumluluk için gelişmiş araçlarla yapay zeka iş akışlarınızı nasıl geliştirebileceğini gördük.
Kullanım hakkında daha fazla bilgi için IBM Watsonx resmi belgelerini ziyaret edin.
Ayrıca, farklı heyecan verici entegrasyonlar hakkında daha fazla bilgi edinmek için Ultralytics entegrasyon kılavuzu sayfasına göz atmayı unutmayın.
SSS
IBM Watsonx kullanarak bir YOLO11 modelini nasıl eğitebilirim?
IBM Watsonx kullanarak bir YOLO11 modelini eğitmek için aşağıdaki adımları izleyin:
- Ortamınızı Kurun: Bir IBM Cloud hesabı oluşturun ve bir Watsonx.ai projesi kurun. Kodlama ortamınız için bir Jupyter Notebook kullanın.
- Kütüphaneleri Kurun: Aşağıdaki gibi gerekli kütüphaneleri yükleyin
torch
,opencv
veultralytics
. - Veri Yükleyin: Veri setinizi Watsonx'a yüklemek için Kaggle API'sini kullanın.
- Veri Önişleme: Veri setinizi gerekli dizin yapısına göre düzenleyin ve
.yaml
yapılandırma dosyası. - Modeli Eğitin: Modelinizi aşağıdaki gibi belirli parametrelerle eğitmek için YOLO komut satırı arayüzünü kullanın
epochs
,batch size
velearning rate
. - Test Et ve Değerlendir: Modeli test etmek için çıkarımı çalıştırın ve hassasiyet ve geri çağırma gibi metrikleri kullanarak performansını değerlendirin.
Ayrıntılı talimatlar için YOLO11 Model Eğitim kılavuzumuza bakın.
Yapay zeka model eğitimi için IBM Watsonx'ın temel özellikleri nelerdir?
IBM Watsonx, yapay zeka model eğitimi için çeşitli temel özellikler sunar:
- Watsonx.ai: IBM destekli özel modellere ve Llama 3 gibi üçüncü taraf modellere erişim dahil olmak üzere yapay zeka geliştirme araçları sağlar. Kapsamlı yapay zeka 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 zeka destekli bir semantik katman sunar.
- Watsonx.governance: Uyumluluğu otomatikleştirir, uyarılarla riski yönetir ve önyargı ve sapma gibi sorunları tespit etmek için araçlar sağlar. Ayrıca işbirliği için gösterge panoları ve raporlama araçları da içerir.
Daha fazla bilgi için IBM Watsonx resmi belgelerini ziyaret edin.
Ultralytics YOLO11 modellerini eğitmek için neden IBM Watsonx kullanmalıyım?
IBM Watsonx, yapay zeka yaşam döngüsünü kolaylaştıran kapsamlı araç paketi sayesinde Ultralytics YOLO11 modellerini eğitmek için mükemmel bir seçimdir. Temel avantajlar şunlardır:
- Ölçeklenebilirlik: IBM Cloud hizmetleri ile model eğitiminizi kolayca ölçeklendirin.
- Entegrasyon: Çeşitli veri kaynakları ve API'ler ile sorunsuz entegrasyon.
- Kullanıcı Dostu Arayüz: İşbirliğine dayalı ve sezgisel bir arayüz ile 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.
Hakkında daha fazla bilgi edinin Ultralytics YOLO11 ve IBM Watsonx kullanarak modellerin nasıl eğitileceğini entegrasyon kılavuzumuzda bulabilirsiniz.
IBM Watsonx üzerinde YOLO11 eğitimi için veri kümemi nasıl önceden işleyebilirim?
IBM Watsonx üzerinde YOLO11 eğitimi için veri kümenizi önceden işlemek için:
- Dizinleri Düzenleyin: Veri setinizin YOLO dizin yapısını takip ettiğinden ve train/val/test ayrımı içinde görüntüler ve etiketler için ayrı alt dizinler bulunduğundan emin olun.
- .yaml Dosyasını Güncelle: Değiştirmek
.yaml
yapılandırma dosyasını yeni dizin yapısını ve sınıf adlarını yansıtacak şekilde değiştirin. - Ön İşleme Komut Dosyasını Çalıştır: Veri kümenizi yeniden düzenlemek ve güncellemek için bir Python betiği kullanın.
.yaml
dosyayı buna göre hazırlayın.
İşte veri kümenizi düzenlemek için örnek bir komut dosyası:
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") or filename.endswith(".png") or filename.endswith(".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 bakın.
IBM Watsonx üzerinde bir YOLO11 modelini eğitmek için ön koşullar nelerdir?
IBM Watsonx üzerinde bir YOLO11 modelini eğitmeye başlamadan önce aşağıdaki ön koşullara sahip olduğunuzdan emin olun:
- IBM Bulut Hesabı: Watsonx.ai'ye erişmek için IBM Cloud'da bir hesap oluşturun.
- Kaggle Hesabı: Veri kümelerini yüklemek için bir Kaggle hesabına ve bir API anahtarına ihtiyacınız olacaktır.
- Jupyter Notebook: Kodlama ve model eğitimi için Watsonx.ai içinde bir Jupyter Notebook ortamı kurun.
Ortamınızı kurma hakkında daha fazla bilgi için Ultralytics Kurulum kılavuzumuzu ziyaret edin.