Перейти к содержимому

Ultralytics HUB-Руководство по управлению моделями в SDK

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

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

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

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

Необходимые условия для проекта и набора данных Access

Перед созданием модели или обучением крайне важно убедиться в наличии проекта и набора данных. Этот простой фрагмент кода поможет тебе убедиться в наличии этих компонентов, инициализировав их объекты. Хотя использование проекта и набора данных для организации обучения модели полезно, важно отметить, что оно не является обязательным. Если какой-либо из идентификаторов отсутствует, то данные объекта (project.data, dataset.data) будет пустым.

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

Создай новую модель с пользовательской конфигурацией

Создать новую модель, соответствующую требованиям твоего проекта, проще простого с помощью этой удобной функции. Укажи имя модели и привяжи ее к своему проекту и набору данных. Кроме того, ты можешь настроить конфигурации под свои нужды, например, задать размер партии или устройство, а также многое другое. Обрати внимание, что projectId и datasetId Параметры необязательны, если ты еще не готов привязать модель к проекту или набору данных.

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

Обновление метаданных или конфигурации существующей модели

По мере развития проектов тебе может понадобиться обновить метаданные модели, например, переименовать ее для наглядности. SDK предоставляет метод, позволяющий обновлять эти данные без особых усилий, сводя к минимуму ошибки, допущенные вручную, и экономя твое драгоценное время.

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

Безопасное удаление модели

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

model = client.model("Model ID")
model.delete(hard=True)  # Permanently deletes the specified model
По умолчанию метод delete выполняет мягкое удаление, помечая модель как неактивную, но не удаляя ее окончательно. Если ты хочешь выполнить жесткое удаление и навсегда удалить модель вместе с ее связанными данными, ты можешь передать аргумент hard=True, как показано в примере выше. Будь осторожен при использовании опции hard delete, так как она необратима и приводит к полному удалению указанной модели из системы.

Перечисление всех твоих моделей с помощью пагинации

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

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

Загружай и визуализируй показатели тренировок

Чтобы отслеживать и визуализировать показатели производительности твоей модели на протяжении всего процесса тренировки, используй эту функцию для загрузки таких показателей, как потери и точность. Это позволит постоянно следить за прогрессом тренировки и упростит этап анализа.

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

# 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 справится с этим без проблем.

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

Получение URL-адреса прямой загрузки

Иногда тебе может потребоваться прямой доступ к артефактам твоей модели, хранящимся в удаленном доступе. Эта удобная функция предоставляет URL-адрес для доступа и загрузки определенных файлов, например весов твоей модели с наилучшими показателями.

modelId = "<Model ID>"
model = client.model(modelId)
download_url = model.get_download_link("best")  # Retrieves the download link for the best model checkpoint
print("Model download link:", download_url)  # Prints out the download link

Загрузите контрольную точку модели

Загрузить контрольную точку модели можно с помощью upload_model Функция. Просто укажи значимость контрольной точки с помощью is_best флаг и эпоху тренировки для наглядности.

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

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


Комментарии