Управление моделями Ultralytics HUB-SDK
Добро пожаловать в документацию по управлению моделями Ultralytics HUB-SDK! Если вы только начинаете работать с управлением моделями машинного обучения или являетесь опытным специалистом по данным, ищущим конкретные инструкции по эксплуатации, вы попали в нужное место. Это руководство обеспечит плавное ознакомление с функциями HUB-SDK, гарантируя, что вы получите знания для эффективного управления своими моделями.
Получение модели по ее уникальному идентификатору
В рабочих процессах машинного обучения доступ к определенной модели является распространенным требованием. С помощью Ultralytics HUB-SDK получение модели по ее ID не составляет труда. Эта функция настраивает объект модели на основе предоставленного уникального идентификатора, предоставляя вам полный доступ к деталям и операциям модели.
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
Доступ к проекту и предварительные требования к набору данных
Прежде чем создавать или обучать модель, крайне важно убедиться, что и project и dataset присутствуют. Следующий фрагмент кода помогает проверить эти компоненты, инициализируя их объекты. Хотя использование проекта и набора данных для организации обучения модели является полезным, это не обязательно. Если какой-либо ID отсутствует, данные объекта (project.data
, dataset.data
) будет пустым.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
project = client.project("<Project ID>")
dataset = client.dataset("<Dataset ID>")
Создайте новую модель с пользовательской конфигурацией
Создание новая модель С помощью этой функции легко адаптировать модель к требованиям вашего проекта. Укажите имя модели и свяжите ее со своим проектом и набором данных. Вы также можете настроить такие параметры, как размер пакета или устройство. Обратите внимание, что projectId
и datasetId
параметры являются необязательными, если вы еще не готовы привязать модель к проекту или набору данных.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
data = {
"meta": {"name": "sdk model"}, # Model name
"projectId": project.id, # Optional: Associate with an existing project
"datasetId": dataset.id, # Optional: 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
Обновить метаданные или конфигурацию существующей модели
По мере развития проектов вам может потребоваться обновить метаданные модели, например, переименовать ее для ясности. SDK предоставляет метод для легкого обновления этих деталей, минимизируя ручные ошибки и экономя время.
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
Безопасное удаление модели
Удаление модели необратимо, поэтому используйте эту функцию с осторожностью. Когда вы уверены, что хотите удалить модель из системы, следующая команда навсегда удалит указанную модель вместе со всеми связанными с ней данными.
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
По умолчанию, delete
метод выполняет мягкое удаление, помечая модель как неактивную, не удаляя ее навсегда. Если вы хотите выполнить жесткое удаление и удалить модель вместе со связанными данными навсегда, передайте аргумент hard=True
как показано выше. Соблюдайте осторожность при использовании опции жесткого удаления, так как она необратима.
Список всех ваших моделей с разбивкой на страницы
Ultralytics HUB-SDK упрощает получение списки моделей, реализуя пагинацию для эффективной навигации по потенциально большим коллекциям. Путем настройки аргументов, таких как page_size
, вы можете настроить вывод в соответствии с вашими потребностями, включая возможность просмотра как частных, так и общедоступных проектов.
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
print("Next page result:", model_list.results)
model_list.previous() # Return to the previous page
print("Previous page result:", model_list.results)
Загрузка и визуализация метрик обучения
Чтобы отслеживать и визуализировать метрики производительности вашей модели на протяжении всего процесса обучения, используйте эту функцию для загрузки таких метрик, как потери и точность. Это обеспечивает непрерывный мониторинг хода обучения и упрощает этап анализа.
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
Экспортируйте свою модель для развертывания или анализа
Экспорт моделей для различных целей, таких как развертывание или углубленный анализ, не представляет собой сложности. Укажите необходимый формат, и эта функция соответствующим образом подготовит модель. Независимо от того, нужен ли вам формат TensorFlow или PyTorch, SDK легко справится с этим.
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
Получение URL-адреса для прямой загрузки весов
Иногда может потребоваться прямой доступ к удаленно хранящимся артефактам вашей модели. Эта функция предоставляет URL-адрес для доступа к определенным файлам, таким как веса вашей лучшей модели.
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)
Загрузить контрольную точку модели
Загрузка контрольная точка модели выполняется просто с помощью upload_model
функции. Укажите значимость контрольной точки с помощью is_best
флаг и эпоха обучения для ясности.
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
Заключение
Ultralytics HUB-SDK предлагает полный набор операций для эффективного управления моделями, позволяя вам сосредоточиться на достижении наилучших результатов в ваших начинаниях в области машинного обучения. Если у вас возникнут дополнительные вопросы или потребуется помощь, обратитесь в наше сообщество или в службу поддержки. Удачного моделирования! 🚀