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
Access 项目和数据集的先决条件
在创建或训练模型之前,必须确保以下两点 项目 和一个 数据集 组件。下面的代码片段通过初始化对象来帮助验证这些组件。虽然利用项目和数据集来组织模型训练是有益的,但并不是必须的。如果缺少任何一个 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为有效的模型管理提供了一套全面的操作,使您能够专注于在机器学习方面取得最佳成果。如果您有任何进一步的问题或需要帮助,请联系我们的社区或支持团队。建模愉快🚀