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
访问项目和数据集的先决条件
在创建或训练模型之前,务必确保 项目 和一个 数据集 存在。以下代码片段通过初始化对象来帮助验证这些组件。虽然利用项目和数据集来组织模型训练是有益的,但这不是强制性的。如果缺少任何 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
标志和训练 epoch,以提高清晰度。
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 提供了一套全面的操作,用于有效的模型管理,使您能够专注于在机器学习工作中取得最佳结果。如果您有任何其他问题或需要帮助,请联系我们的社区或支持团队。祝您建模愉快!🚀