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_size
Hem ö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! 🚀