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"}, # 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 предоставляет метод, позволяющий обновлять эти данные без особых усилий, сводя к минимуму ошибки, допущенные вручную, и экономя твое драгоценное время.
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 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
Загружай и визуализируй показатели тренировок
Чтобы отслеживать и визуализировать показатели производительности твоей модели на протяжении всего процесса тренировки, используй эту функцию для загрузки таких показателей, как потери и точность. Это позволит постоянно следить за прогрессом тренировки и упростит этап анализа.
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) # Prints out the weight url link
Загрузите контрольную точку модели
Загрузить контрольную точку модели можно с помощью 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 предлагает полный набор операций для эффективного управления моделями, позволяя тебе сосредоточиться на достижении наилучших результатов в своих начинаниях в области машинного обучения. Если у тебя возникнут дополнительные вопросы или потребуется помощь, обращайся к нашему гостеприимному сообществу или в службу поддержки. Счастливого моделирования! 🚀