TorchServe部署模型-index_to_name.json

发布于:2025-04-11 ⋅ 阅读:(90) ⋅ 点赞:(0)

在TorchServe部署模型时,若要将模型输出结果映射到指定标签(如分类任务的类别名称),需通过index_to_name.json文件定义索引与标签的映射关系,并在打包模型时将其作为额外文件包含。以下是完整流程和命令示例:

1. 准备index_to_name.json文件

文件内容需为JSON格式,键为模型输出的类别索引(字符串类型),值为对应的标签名称。例如:

{
    "0": "people",
    "1": "car"
}

保存为index_to_name.json,并确保路径正确。

2. 打包模型时包含映射文件

使用torch-model-archiver打包模型时,通过–extra-files参数指定index_to_name.json:

torch-model-archiver \
    --model-name 模型名 \
    --version 1.0 \
    --model-file model.py \          # 模型结构文件
    --serialized-file model.pth \    # 模型权重文件
    --handler image_classifier \     # 使用内置图像分类处理器
    --extra-files index_to_name.json \  # 包含标签映射文件
    --export-path model_store        # 输出目录

关键参数说明:

–handler:根据任务类型选择内置处理器(如image_classifier、text_classifier等),这些处理器会自动加载index_to_name.json 。
–extra-files:可包含多个文件,用逗号分隔(如–extra-files file1.json,file2.txt)。

3. 启动TorchServe并加载模型

启动服务时,指定模型存储路径和模型文件:

torchserve --start \
    --model-store model_store \      # 模型存储目录
    --models 模型名=模型名.mar       # 加载指定模型

4. 验证映射是否生效

发送请求后,若使用内置处理器(如image_classifier),返回结果会自动将数字索引替换为index_to_name.json中的标签。例如:

curl http://localhost:8080/predictions/模型名 -T input.jpg

输出示例:

{
    "prediction": "car",
    "confidence": 0.95
}

注意事项
自定义处理器:若使用自定义处理器(继承BaseHandler),需在代码中手动加载index_to_name.json并处理映射逻辑 。

文件路径:确保index_to_name.json在打包时路径正确,否则会导致加载失败 。

多模型支持:每个模型的.mar文件需包含独立的index_to_name.json,避免冲突 。

通过以上步骤,TorchServe会将模型输出的数字索引自动转换为易读的标签名称,提升结果可读性。


网站公告

今日签到

点亮在社区的每一天
去签到