模型保存#

模型训练完成之后导出的checkpoint,可通过deploy接口将模型保存到云平台进行管理,返回一个模型引用的唯一tag,并在部署到云平台AI解译工具箱时可根据模型tag重新初始化checkpoint,自动将模型下载到本地cache目录

获取授权#

在与云平台进行交互时,需要先进行云平台的授权,获取用户个人token才可使用

[ ]:
from aiearth.core import Authenticate

Authenticate()

创建项目空间#

项目空间和模型任务一一对应,表示一类模型任务,并通过 project_id 进行索引

[ ]:
from aiearth.predict.deploy.sdk import Project

project = Project.create("自定义模型pipeline")
print(project)

创建模型版本#

每个项目空间下面,可以有多个模型版本,模型版本命名规则请遵循 x.y.z,xyz均为数字,如1.0.1,并通过 version_id 进行索引

[ ]:
from aiearth.predict.deploy.sdk import Version

version = project.create_version("1.0.1")
print(version)

模型保存#

从本地模型的onnx路径初始化ModelCheckpoint,并添加TeslaT4上转换的Tensorrt engine文件作为模型附属文件,将模型保存到云平台,并返回模型引用的saved_model_tag

ModelCheckpoint.from_local_path的path参数为本地onnx的模型路径,image_size参数是模型输入图像的大小,bound参数是模型预测需要忽略的边界大小,不计入最后结果,attached_files参数是模型其他附属文件,这里将加速之后的trt文件作为附属文件attached_files进行了上传,attached_files参数类型为Dict,其中key为onnx模型文件名(去除后缀)+ 显卡类型 + trt engine后缀,在推理时TensorrtPredictor可根据模型文件名索引对应的trt engine,value类型为ModelAttachedFilepath参数为本地对应的trt文件路径

[ ]:
from aiearth.predict.checkpoint import (
    ModelCheckpoint,
    ModelAttachedFile,
    AcceleratorType,
)

ckpt = ModelCheckpoint.from_local_path(
    path="/path/to/your/fake_name.onnx",
    image_size=1024,
    bound=128,
    attached_files={
        "fake_name.TeslaT4.trt": ModelAttachedFile(
            path="/path/to/your/fake_name.TeslaT4.trt",
            accelerator_type=AcceleratorType.t4,
        )
    },
)

saved_model_tag = version.save_model(ckpt)
print(saved_model_tag)

运行的时候需要将/path/to/your/fake_name.onnx替换为本地onnx模型的绝对路径,fake_name.TeslaT4.trt中的fake_name替换为上传的模型文件名,以及ModelAttachedFilepath参数替换为本地对应的trt文件绝对路径

模型引用#

保存到云平台的模型,可通过模型的tag重新初始化checkpoint,自动将模型下载到本地的cache目录

[ ]:
import json

ckpt = ModelCheckpoint.from_remote_tag(saved_model_tag)
print(json.dumps(ckpt.get_cfg().dict()))

模型列表#

保存到云平台的模型是按照项目空间和模型版本进行管理的,可以查询当前模型版本下已保存的模型信息

[ ]:
import json

models = version.list_saved_models()
print(json.dumps(models))