Перейти к содержанию

Управление моделями Ultralytics HUB-SDK

Добро пожаловать в документацию по управлению моделями Ultralytics HUB-SDK! Если вы только начинаете управлять моделями машинного обучения или являетесь опытным специалистом по исследованию данных и ищете конкретные инструкции по работе, вы пришли в нужное место. В этом руководстве вы сможете плавно перейти к функциям HUB-SDK и получить знания и опыт для эффективного управления моделями.

Получение модели по ее уникальному идентификатору

В рабочих процессах машинного обучения доступ к конкретной модели является распространенным требованием. С помощью Ultralytics HUB-SDK получить модель по ее идентификатору проще простого. Эта функция создает объект модели на основе предоставленного уникального идентификатора, предоставляя вам полный доступ к деталям и операциям модели.

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

Прежде чем создавать или обучать модель, необходимо убедиться, что оба проект и набор данных присутствуют. Следующий фрагмент кода помогает проверить эти компоненты путем инициализации их объектов. Хотя использование проекта и набора данных для организации обучения модели полезно, оно не является обязательным. Если один из идентификаторов отсутствует, данные объекта (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 предлагает полный набор операций для эффективного управления моделями, позволяя вам сосредоточиться на достижении наилучших результатов в ваших начинаниях в области машинного обучения. Если у вас возникнут дополнительные вопросы или потребуется помощь, обращайтесь в наше сообщество или в службу поддержки. Счастливого моделирования! 🚀

📅 Создано 1 год назад ✏️ Обновлено 1 месяц назад

Комментарии