İçeriğe geç

Ultralytics HUB-SDK Model Yönetimi İşlemleri Kılavuzu

Ultralytics HUB-SDK Model Yönetimi belgelerine hoş geldiniz! İster makine öğrenimi modellerini yönetmeye yeni başlıyor olun, ister özel işlem talimatları arayan deneyimli bir veri bilimcisi olun, doğru yere geldiniz. HUB-SDK özellikleri arasında sorunsuz bir yolculuğa çıkalım ve modellerinizi verimli bir şekilde yönetmek için gereken bilgi birikimini edinmenizi sağlayalım.

Bir Modeli Benzersiz Tanımlayıcısına Göre Alma

Makine öğrenimi iş akışlarında, genellikle belirli bir modele erişmeniz gerekir. Ultralytics HUB-SDK ile bir modeli kimliğine göre almak çok kolaydır. Bu temel işlev, sağlanan benzersiz tanımlayıcıya göre bir model nesnesi oluşturarak modelin ayrıntılarına ve işlemlerine tam erişim sağlar.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
print(model.data)  # Outputs the model's metadata and configuration

Access Projesi ve Veri Kümesi Önkoşulları

Model oluşturma veya eğitim öncesinde, hem bir projenin hem de bir veri kümesinin varlığından emin olmak çok önemlidir. Bu basit kod parçacığı, nesnelerini başlatarak bu bileşenlerin kullanılabilir olduğunu doğrulamanıza yardımcı olur. Model eğitimini düzenlemek için bir proje ve veri kümesi kullanmak faydalı olsa da, bunun zorunlu olmadığını belirtmek önemlidir. Kimliklerden biri eksikse, nesne verileri (project.data, dataset.data) boş olacaktır.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

project = client.project("<Project ID>")
dataset = client.dataset("<Dataset ID>")

Özel Yapılandırma ile Yeni Bir Model Oluşturma

Proje gereksinimlerinize göre uyarlanmış yeni bir model oluşturmak bu kullanışlı işlevle basitleştirilmiştir. Modelin adını belirleyin ve projeniz ve veri setinizle ilişkilendirin. Ayrıca, diğerlerinin yanı sıra parti boyutunu veya cihazı ayarlamak gibi yapılandırmaları ihtiyaçlarınıza uyacak şekilde özelleştirebilirsiniz. Şunu unutmayın projectId ve datasetId Modeli henüz bir projeye veya veri kümesine bağlamaya hazır değilseniz parametreler isteğe bağlıdır.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

data = {
    "meta": {"name": "sdk model"},  # Give your model a recognizable name
    "projectId": project.id,  # Associate with an existing project
    "datasetId": dataset.id,  # Associate with an existing dataset
    "config": {  # Define hyperparameters and settings
        "batchSize": "-1",
        "cache": "ram",
        "device": "name",
        "epochs": "5",
        "imageSize": "640",
        "patience": "5",  # Stop training if validation doesn't improve
    },
}
model = client.model()
model.create_model(data)  # Creates the model with your specified details

Mevcut Bir Modelin Meta Verilerini veya Yapılandırmasını Güncelleme

Projeler geliştikçe, bir modelin meta verilerini güncellemeniz gerekebilir, örneğin netlik için yeniden adlandırmak gibi. SDK, bu ayrıntıları zahmetsizce yenilemek için bir yöntem sunarak manuel hataları en aza indirir ve size değerli zaman kazandırır.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.update({"meta": {"name": "Updated Model Name"}})  # Renames the specified model

Bir Modeli Güvenle Silme

Bir modelin silinmesi geri döndürülemez, bu nedenle bu işlev dikkatle kullanılmalıdır. Bir modeli sistemden kaldırmak istediğinizden emin olduğunuzda, aşağıdaki komut belirtilen modeli tüm ilişkili verileriyle birlikte kalıcı olarak silecektir.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.delete(hard=True)  # Permanently deletes the specified model

Varsayılan olarak, delete yöntemi yumuşak bir silme işlemi gerçekleştirerek modeli kalıcı olarak kaldırmadan etkin değil olarak işaretler. Sert bir silme işlemi gerçekleştirmek ve modeli ilişkili verileriyle birlikte kalıcı olarak kaldırmak istiyorsanız, şu bağımsız değişkeni iletebilirsiniz hard=True Yukarıdaki örnekte gösterildiği gibi. Sabit silme seçeneğini kullanırken dikkatli olun, çünkü bu işlem geri döndürülemez ve belirtilen modelin sistemden tamamen kaldırılmasıyla sonuçlanır.

Tüm Modellerinizi Sayfalandırma ile Listeleme

Ultralytics HUB-SDK, potansiyel olarak büyük model koleksiyonları arasında verimli bir şekilde gezinmek için sayfalandırma uygularken, model listelerini getirme görevini kolaylaştırır. Aşağıdaki gibi argümanları özelleştirerek page_sizeHem özel hem de kamu projelerini görüntüleyebilmek de dahil olmak üzere, çıktıyı ihtiyaçlarınıza göre uyarlayabilirsiniz.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model_list = client.model_list(page_size=10)  # Fetches the first page with 10 models
print("Current result:", model_list.results)  # Displays the current page's models

model_list.next()  # Move to the next page of results
print("Next page result:", model_list.results)  # Displays the next page's models

model_list.previous()  # Return to the previous page of results
print("Previous page result:", model_list.results)  # Displays the previous page's models

Eğitim Metriklerini Yükleyin ve Görselleştirin

Eğitim süreci boyunca modelinizin performans metriklerini izlemek ve görselleştirmek için bu işlevi kullanarak kayıp ve doğruluk gibi metrikleri yükleyin. Bu, eğitim ilerlemesinin sürekli izlenmesini sağlar ve analiz aşamasını basitleştirir.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")

# Define your metrics structure. Keys are steps, and values are JSON strings of metrics.
data = {
    1: '{"loss/1": 0.5, "accuracy/1": 0.85}',
    2: '{"loss/2": 0.4, "accuracy/2": 0.88}',
    3: '{"loss/3": 0.3, "accuracy/3": 0.90}',
}

model.upload_metrics(data)  # Uploads the specified metrics to the model

Modelinizi Dağıtım veya Analiz için Dışa Aktarma

Dağıtım veya derinlemesine analiz gibi çeşitli amaçlar için modelleri dışa aktarmak hiç bu kadar kolay olmamıştı. İstediğiniz formatı belirtin ve bu işlev modeli uygun şekilde hazırlasın. İster Tensorflow ister PyTorch formatına ihtiyacınız olsun, SDK bunu sorunsuz bir şekilde halleder.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.export(format="pyTorch")  # Exports the model as a PyTorch file

Doğrudan Ağırlık URL'si alma

Bazen, modelinizin uzaktan depolanan eserlerine doğrudan erişmeniz gerekebilir. Bu kullanışlı işlev, en iyi performans gösteren model ağırlıklarınız gibi belirli dosyalara erişmek için bir URL sağlar.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
weight_url = model.get_weights_url("best")  # or "last"
print("Weight URL link:", weight_url)  # Prints out the weight url link

Model Kontrol Noktası Yükleme

Bir model kontrol noktasının yüklenmesi upload_model işlevi. Kontrol noktasının önemini şu şekilde belirtmeniz yeterlidir is_best bayrağı ve netlik için eğitim dönemi.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.upload_model(is_best=True, epoch=5, weights="<Weight File>")  # Uploads the specified model checkpoint

Sonuç olarak, Ultralytics HUB-SDK etkili model yönetimi için kapsamlı bir dizi işlem sunarak makine öğrenimi çalışmalarınızda en iyi sonuçları elde etmeye odaklanmanızı sağlar. Başka sorularınız varsa veya yardıma ihtiyaç duyarsanız, lütfen konuksever topluluğumuza veya destek ekibimize ulaşın. Mutlu modellemeler! 🚀

Yorumlar