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

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



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

Комментарии