更新时间:2024-10-30 GMT+08:00
分享

评测结果

评测任务完成后,可单击评测任务名称查看模型评测各项得分。任务详情页面展示了评测任务详情信息以及评测模型结果信息两部分内容。

任务详情

任务详情页面,详细展示了任务名称、类别、资源规格等基本信息。

图1 任务详情

任务视图

根据用户选择“自定义”或“内置”评测方式,详情页会展示以下三种流程图:

  • 自定义评测
    图2 自定义评测
  • 内置指标评测
    图3 内置指标评测
  • 自定义评测+内置指标评测(组合评测)
    图4 自定义评测+内置指标评测(组合评测)

    用户单击不同的任务视窗后,结果栏会相应切换。可查看在当前视图下的结果文件、任务日志和资源占用情况。

坏例判别

仅当用户选择“BadCase”判别后展示,展示badcase的基本信息。运行过程中、坏例判别失败(未获取到坏例结果)时,该视图各项指标显示为"--"。

图5 坏例判别

坏例判别详情:单击“坏例判别”可查看badcase详情。左侧显示统计信息,右侧支持标注数据和预测数据在图像上的对比可视化显示。

图6 坏例判别详情

保存数据集:单击右上角“保存为数据集”,可将存在坏例判别的数据保存到新数据集中。数据集各属性沿用原始评测数据集,例如“数据类型”、“标注状态”、“数据格式”等。

评测结果

显示模型的评测结果,例如“模型评测结果字典.json”和“模型评测报告.pdf”,可在线查看或下载至本地查看。

图7 评测结果
用户输出评测结果,如果需创建PDF可视化报告需满足Octopus平台的相关约定,具体如下:
  1. 文件约定:用户将待创建PDF的评测结果写入到原始json文件中,文件内容如下:
    {
       "kind": "rep", 
       "docVersion": "Octopus/v1",
        "metadata": {},
        "spec": {
            "overview": [],
            "content": [],
         }
    }
    • kind:表示该文件标识符,当其存在且值为rep时会自动创建PDF,否则将该结果文件直接上传到评测结果文件夹中。
    • docVersion: 表示八爪鱼评测可视化报告的文档版本。
    • metadata: 表示文档的基本元信息。
    • spec:表示规格,即文档包含的内容。其中overview中保留总览信息,将字段对象渲染为无边线表格概况信息。content渲染为评测结果内容主体。

  2. 内容约定:目前支持的元素包括以下:
    1. 段落
      {
         "kind": "Paragraph",
         "spec": "Test Paragraph!"
      }
      • kind: 唯一类型标识,Paragraph:标识为段落,用户输出正文或标题文字。
      • spec: Test Paragraph! :表示段落内容。
    2. 表格
      {
          "kind": "Table",
          "spec": {
              "name": "2D Detection Metrics",
              "fields": ["classes", "precision", "recall", "error", "leak", "F-score", "iou cost", "c-distance", "mPA"],
              "data": [
                  ["car", 0.8, 0.8, 0.2, 0.2, 0.8, 0.3, 1.2, 0.8],
                  ["pedestrian", 0.8, 0.8, 0.2, 0.2, 0.8, 0.3, 1.2, 0.8]
              ]
          }
      }
      • kind: 唯一类型标识,Table标识为表格,多用于输出指标项结果。
      • spec: 数据主体。
        • name:表格名称。
        • fields:表头元素。
        • data:表主体,每个列表表示一行数据。
    3. 柱状图
      {
          "kind": "BarChart",
          "spec": {
              "name": "precision-compare",
              "legends": ["min_iou=0.5", "min_iou=0.6"],
              "axes": ["classes", "precision"],
              "labels": ["car", "pedestrian"],
              "data": [
                  [0.8, 0.8],
                  [0.7, 0.7]
              ]
          }
      }
      • kind: 唯一类型标识,BarChart标识为柱状图,多用于指标结果对比。
      • spec: 数据主体。
        • name: 柱状图名称。
        • legends: 图例,列表形式,与data对应。
        • axes: 坐标轴设定,x轴与y轴名称。
        • labels: 标签列表。
        • data: 柱状图数据主体,每个列表表示一个图例单元数据。
    4. 折线图
      {
          "kind": "LineChart",
          "spec": {
              "name": "car-PR compare",
              "legends": ["min_iou=0.5", "min_iou=0.6"],
              "axes": ["precision", "recall"],
              "data": [
                  [[0.2, 0.4, 0.6, 0.8, 1.0], [0.8, 0.8, 0.6, 0.6, 0.4]],
                  [[0.2, 0.4, 0.6, 0.8, 1.0], [0.7, 0.7, 0.6, 0.6, 0.5]]
              ]
          }
      }
      • kind: 唯一类型标识,LineChart标识为折线图,多用于趋势对比,如PR图。
      • spec: 数据主体。
        • name: 折线图名称。
        • legends: 图例,列表形式,与data对应。
        • axes: 坐标轴设定,x轴与y轴名称。
        • data: 折线图数据主体,每个列表表示一个图例数据(包括x/y双轴)。
    5. 饼图
      {
          "kind": "PieChart",
          "spec": {
              "name": "BadCase in 2D Detection",
              "data": [30, 50, 80],
              "labels": ["Car", "Truck", "Pedestrian"]
          }
      }
      • kind: 唯一类型标识,PieChart标识为饼图。
      • spec: 数据主体。
        • name: 饼图名称。
        • labels: 饼图标签与数据data对应。
        • data: 饼图数据列表,与标签labels对应。
  3. 完整示例。
    1. 原始数据 01.json
      {
        "kind": "rep",
        "docVersion": "Octopus/v1",
        "metadata": {
          "name": "模型评测报告",
          "kind": "D2",
          "datetime": "2023-03-16 21:00:00"
        },
        "spec": {
          "overview": [
            {
              "name": "数据集",
              "value": "Octopus/v1"
            }
          ],
          "content": [
            {
              "kind": "Paragraph",
              "spec": "Test Paragraph!"
            },
            {
              "kind": "Table",
              "spec": {
                "name": "2D Detection Metrics",
                "fields": [
                  "classes",
                  "precision",
                  "recall",
                  "error",
                  "leak",
                  "F-score",
                  "iou cost",
                  "c-distance",
                  "mPA"
                ],
                "data": [
                  ["car", 0.8, 0.8, 0.2, 0.2, 0.8, 0.3, 1.2, 0.8],
                  ["pedestrian", 0.8, 0.8, 0.2, 0.2, 0.8, 0.3, 1.2, 0.8]
                ]
              }
            },
            {
              "kind": "BarChart",
              "spec": {
                "name": "precision-compare",
                "legends": [
                  "min_iou=0.5",
                  "min_iou=0.6"
                ],
                "axes": [
                  "classes",
                  "precision"
                ],
                "labels": [
                  "car",
                  "pedestrian"
                ],
                "data": [
                  [0.8, 0.8],
                  [0.7, 0.7]
                ]
              }
            },
            {
              "kind": "LineChart",
              "spec": {
                "name": "car-PR compare",
                "legends": [
                  "min_iou=0.5",
                  "min_iou=0.6"
                ],
                "axes": [
                  "precision",
                  "recall"
                ],
                "data": [
                  [
                    [0.2, 0.4, 0.6, 0.8, 1.0],
                    [0.8, 0.8, 0.6, 0.6, 0.4]
                  ],
                  [
                    [0.2, 0.4, 0.6, 0.8, 1.0],
                    [0.7, 0.7, 0.6, 0.6, 0.5]
                  ]
                ]
              }
            }
          ]
        }
      }
    2. 根据原始数据 01.json自动创建PDF 01.pdf
      图8 英文pdf
      图9 中文pdf
      图10 car-PR compare

评测任务日志查看与下载

评测任务运行的过程中生成日志,训练服务提供日志的查看以及下载功能,支持查看评测任务的运行情况。

生成的日志文件共有四种形式:

  • evaluate-xx-{id}.log:用户实际评测任务的训练日志。
  • evaluate-xx-{id}-init.log:Octopus平台提供的前置数据的准备日志。
  • evaluate-xx-{id}-sidecar.log:Octopus平台提供的任务流程控制日志,包括日志同步、结果上传。
  • octopus-evaluate-xx-{id}-supplemental.logs: Octopus平台任务异常退出或停止产生的错误信息输出日志,运行正常时不产生该日志。

    {id}为该训练任务ID,{index}为节点编号,例如单节点single-0,多节点distributed-0 distributed-1。

在该评测任务的详情页面,可单击“任务日志”查看任务在运行过程中生成的所有日志。如果日志较多,可在搜索框中输入关键字,查找指定日志内容。

如图,在日志服务页面中的日志列表部分详细展示了该评测任务包含的所有文件的大小以及最新写入时间。单击文件后的“查看”,该文件的详细执行过程则在日志详情部分展示。也可在日志文件后的“操作”栏中,单击“下载”,即可将该日志文件下载到本地查看。

图11 任务日志

资源占用情况

在任务运行中,资源占用情况模块显示任务占用的CPU、内存、GPU显存利用率、占用率百分比的折线图。默认显示CPU占用情况折线图。

图12 资源占用情况
  • 双击任一图例:显示全部资源占用折线图。
  • 单击指定图例:只显示该图例折线图。
资源占用情况功能模块,需要用户在制作自定义镜像时安装psutil与pynvml,参考命令如下:
pip install psutil pynvml

如果未安装psutil与pynvml,则页面无法显示资源使用状况。

相关文档