帮助
个人资料
现在支持直接上传头像。前往「修改资料」,上传图片后即会显示为您的头像。
个性签名可以使用 Markdown 与 HTML,请不要在其中添加恶意代码。
添加题目
题面
在添加题目页面填写题面,题目内容使用 Markdown 与 TeX 公式。
测试数据与评测方式
本站评测系统支持针对不同的AI任务类型提供专业的评测指标。请根据题目类型准备并上传测试数据 ZIP 压缩包:
支持的任务类型
| 模态 | 任务类型 | 可选评测指标 | 输出格式 |
|---|---|---|---|
| 计算机视觉 (CV) | 图像分类 (Image Classification) |
|
[C] |
| 计算机视觉 (CV) | 目标检测 (Object Detection) |
|
[M, 6] |
| 计算机视觉 (CV) | 语义分割 (Semantic Segmentation) |
|
[H, W] |
| 计算机视觉 (CV) | 关键点检测 (Keypoint Detection) |
|
[K, 3] |
| 自然语言处理 (NLP) | 文本分类 (Text Classification) |
|
[C] |
| 自然语言处理 (NLP) | 序列标注 (Sequence Labeling) |
|
[L] |
| 自然语言处理 (NLP) | 抽取式问答 (Extractive QA) |
|
[2] |
| 自然语言处理 (NLP) | 结构化输出 (Structured Output) |
|
String |
| 音频 (Audio) | 音频分类 (Audio Classification) |
|
[C] |
| 音频 (Audio) | 语音识别 (ASR) |
|
String |
| 音频 (Audio) | 语音增强 (Speech Enhancement) |
|
[T] |
| 结构化数据 (Tabular) | 结构化数据分类 (Tabular Classification) |
|
[C] |
| 结构化数据 (Tabular) | 时序预测 (Time Series Forecasting) |
|
[T, D] |
| 结构化数据 (Tabular) | 排序推荐 (Ranking) |
|
[N] |
1. 压缩包目录结构(必须严格一致)
test/
input/
0001.npy
0002.npy
...
output/
0001.npy
0002.npy
...
- 必须是有效的 ZIP 文件;解压后根目录下为
test/input与test/output两个文件夹。 - 仅支持 .npy 文件;文件名需一一对应且相同(如
input/0001.npy对应output/0001.npy)。 - 若某输入样本缺少同名标签文件,该样本会被跳过且不计入总数;如果
input目录无任何样本,将判定为数据错误。
2. 各类型的输出格式详解
2.1 图像分类 (Image Classification)
- 输出数据结构:
numpy格式 - 输出形状:
[C] - 格式说明:C个类别的multi-hot编码
- 支持的评测指标:
-
Macro F-Beta
(配置参数: Beta - 默认 1) -
Micro F-Beta
(配置参数: Beta - 默认 1) - Subset Accuracy
-
Macro F-Beta
2.2 目标检测 (Object Detection)
- 输出数据结构:
numpy格式 - 输出形状:
[M, 6] - 格式说明:M为最大框数,6代表 [x1, y1, x2, y2, confidence, class_id]
- 支持的评测指标:
-
mAP @ IoU
(配置参数: IoU Start - 默认 0.5, IoU End - 默认 0.95, IoU Step - 默认 0.05)
-
mAP @ IoU
2.3 语义分割 (Semantic Segmentation)
- 输出数据结构:
numpy格式 - 输出形状:
[H, W] - 格式说明:输出与原图相同分辨率,每个像素对应一个类别id
- 支持的评测指标:
- mIoU
2.4 关键点检测 (Keypoint Detection)
- 输出数据结构:
numpy格式 - 输出形状:
[K, 3] - 格式说明:K个关键点,3代表 [x, y, visibility]
- 支持的评测指标:
- OKS
2.5 文本分类 (Text Classification)
- 输出数据结构:
numpy格式 - 输出形状:
[C] - 格式说明:C个类别的multi-hot编码
- 支持的评测指标:
-
Macro F-Beta
(配置参数: Beta - 默认 1) -
Micro F-Beta
(配置参数: Beta - 默认 1) - Subset Accuracy
-
Macro F-Beta
2.6 序列标注 (Sequence Labeling)
- 输出数据结构:
numpy格式 - 输出形状:
[L] - 格式说明:L为文本最大长度,输出每个token的类别id
- 支持的评测指标:
- Entity-level F1
2.7 抽取式问答 (Extractive QA)
- 输出数据结构:
numpy格式 - 输出形状:
[2] - 格式说明:输出答案在原文中的 [start_index, end_index]
- 支持的评测指标:
- Token-level F1
- Exact Match
2.8 结构化输出 (Structured Output)
- 输出数据结构:
json格式 - 输出形状:
String - 格式说明:合法的 JSON 字符串
- 支持的评测指标:
- Schema Validation Gate + Field Exact Match
2.9 音频分类 (Audio Classification)
- 输出数据结构:
numpy格式 - 输出形状:
[C] - 格式说明:C个类别的multi-hot编码
- 支持的评测指标:
-
Macro F-Beta
(配置参数: Beta - 默认 1) -
Micro F-Beta
(配置参数: Beta - 默认 1) - Subset Accuracy
-
Macro F-Beta
2.10 语音识别 (ASR)
- 输出数据结构:
text格式 - 输出形状:
String - 格式说明:识别出的文本序列
- 支持的评测指标:
- WER
- CER
2.11 语音增强 (Speech Enhancement)
- 输出数据结构:
numpy格式 - 输出形状:
[T] - 格式说明:干净的波形数据
- 支持的评测指标:
-
SI-SDRi
(配置参数: Sampling Rate - 默认 16000) -
PESQ
(配置参数: Sampling Rate - 默认 16000) -
STOI
(配置参数: Sampling Rate - 默认 16000)
-
SI-SDRi
2.12 结构化数据分类 (Tabular Classification)
- 输出数据结构:
numpy格式 - 输出形状:
[C] - 格式说明:C个类别的multi-hot编码
- 支持的评测指标:
-
Macro F-Beta
(配置参数: Beta - 默认 1) -
Micro F-Beta
(配置参数: Beta - 默认 1) - Subset Accuracy
-
Macro F-Beta
2.13 时序预测 (Time Series Forecasting)
- 输出数据结构:
numpy格式 - 输出形状:
[T, D] - 格式说明:预测未来 T 个时间步长,每个步长 D 个特征
- 支持的评测指标:
- MAPE
2.14 排序推荐 (Ranking)
- 输出数据结构:
numpy格式 - 输出形状:
[N] - 格式说明:N 个候选物品的相关性/点击率预估分数
- 支持的评测指标:
-
NDCG @ K
(配置参数: K - 默认 10)
-
NDCG @ K
3. 代码提交流程与规范
提交的代码将在 Docker 容器中运行,通过文件系统读取输入数据并写入输出结果。
3.1 提交格式
- 提交一个 ZIP 压缩包,包含你的代码、模型文件和其他必要文件。
- 压缩包根目录必须包含
start.sh脚本作为程序入口。
3.2 运行环境与数据交互
评测系统会将你的代码解压到容器中,并自动创建以下目录结构:
./data/
input/ # 测试输入数据(.npy 文件)
output/ # 你需要在此写入预测结果(.npy 文件)
- 输入数据:位于
./data/input/目录,包含所有测试样本(.npy 格式) - 输出数据:你的程序需要将预测结果写入
./data/output/目录 - 文件名对应:输出文件名必须与输入文件名完全相同(如
input/0001.npy→output/0001.npy)
3.3 程序执行流程
- 启动:评测系统执行
start.sh脚本 - 加载模型:在你的代码中加载模型(如 ONNX、PyTorch、TensorFlow 等)
- 批量推理:
- 遍历
./data/input/目录中的所有 .npy 文件 - 读取每个输入文件,执行推理
- 将预测结果保存到
./data/output/,文件名与输入一致
- 遍历
- 程序退出:处理完所有样本后,程序正常退出
3.4 Python 示例代码
#!/usr/bin/env python3
import os
import numpy as np
import onnxruntime as ort
# 数据目录
INPUT_DIR = './data/input'
OUTPUT_DIR = './data/output'
# 创建输出目录
os.makedirs(OUTPUT_DIR, exist_ok=True)
# 加载模型(以 ONNX 为例)
model = ort.InferenceSession("model.onnx")
# 获取所有输入文件
input_files = [f for f in os.listdir(INPUT_DIR) if f.endswith('.npy')]
# 批量推理
for filename in input_files:
# 读取输入数据
input_path = os.path.join(INPUT_DIR, filename)
input_data = np.load(input_path)
# 执行推理(根据你的模型调整)
output = model.run(None, {"input": input_data})[0]
# 处理输出(示例:分类任务,转为 one-hot)
result = np.zeros([10,], dtype=np.float32)
result[np.argmax(output)] = 1.0
# 保存结果(文件名与输入相同)
output_path = os.path.join(OUTPUT_DIR, filename)
np.save(output_path, result)
3.5 start.sh 示例
#!/bin/bash
python3 main.py
3.6 注意事项
- 输出文件名必须与输入文件名完全相同(包括扩展名 .npy)
- 必须处理
./data/input/中的所有 .npy 文件 - 输出数据的 shape 和 dtype 必须符合题目要求
- 程序的总运行时间(包括模型加载和所有样本推理)受题目设置的时间限制约束
- 可以自由使用任何 Python 库,但需确保在题目提供的环境中可用
- 可以在代码中输出调试信息到 stdout/stderr,不会影响评测
- 确保
start.sh有执行权限(ZIP 压缩时保留权限,或在脚本开头添加#!/bin/bash)
4. 评测与判分规则
4.1 评分机制
所有评测方式返回的分数都归一化到 [0, 1] 区间,然后转换为百分制(0-100%):
- Segmentation:mIoU 值直接作为分数(0-1)
- Classification:准确率(正确数/总数)
- Object Detection:mAP 值直接作为分数(0-1)
- Language Model:完全匹配为1.0,不匹配为0.0
- Traditional NLP:
score = 1 / (1 + cross_entropy),交叉熵越低分数越高 - Speech:SISDR 归一化到 [0, 1](-20dB→0, 0dB→0.5, 20dB→1.0)
- Temporal Data:
score = exp(-relative_rmse),RMSE 越低分数越高
4.2 三级成就系统
每道题目设置三个准确率阈值,根据提交的得分判定成就等级:
| 成就等级 | 默认阈值 | 描述 | 奖励池 |
|---|---|---|---|
| 卓越级 (Excellent) | ≥ 95% | 生产可用,极少错误 | A 池 |
| 预期级 (Expected) | ≥ 80% | 满足实际需求 | B 池 |
| 及格级 (Pass) | ≥ 60% | 基本功能可用 | C 池 |
| 未入级 (Fail) | < 60% | 功能不完整 | 无奖励 |
注意:具体阈值由题目设置者在题目管理页面配置,上述为默认值。
4.3 时间与资源限制
- 时间限制:为总运行时间(包括模型加载、数据读写和所有样本推理),超时未完成将被终止并判为 TLE (Time Limit Exceeded)。
- 内存限制:超出将判为 MLE (Memory Limit Exceeded)。
- 运行错误:模型或数据加载/运行异常判为 RE (Runtime Error)。
- 文件错误:无效 ZIP、缺少 start.sh 等判为文件错误。
5. 实用建议与注意事项
5.1 通用建议
- 确保
input与output文件数量一致且文件名完全相同,且至少包含 1 个样本。 - 若模型需要预处理/后处理,请在模型内部完成,或在生成
.npy时提前处理好。 - 避免单个样本过大导致读写或推理超时/内存不足。
- 在本地测试时,使用相同的数据格式和评测方式验证输出。
- 查看题目页面的"评测方式"标签,了解具体使用的评测指标。
5.2 针对不同评测方式的建议
- Segmentation:确保输出是整数类别索引,而非概率图;类别编号从0开始。
- Classification:对于 one-hot 编码,确保每个样本只有一个位置为1,其余为0。
- Object Detection:
- 边界框坐标格式:[x1, y1, x2, y2](左上角和右上角)
- 置信度范围:[0, 1]
- 无检测时用全零填充,而非省略
- Language Model:确保输出是有效的 JSON 字符串;使用
json.dumps()生成标准格式。 - Traditional NLP:如果模型输出 logits,可以直接提交,系统会自动应用 softmax。
- Speech:保持音频采样率一致;信号长度必须与标签完全相同。
- Temporal Data:注意时间序列的对齐;缺失值需要提前处理。
5.3 调试技巧
- 为防止数据泄露,提交记录不会显示任何信息。
- 先在本地测试,确保格式正确后再提交。
- 如果评测失败,检查:
- 输出文件名是否与输入完全对应
- 输出数据的 shape 和 dtype 是否符合要求
- 是否处理了所有输入文件
- 程序是否正常退出(退出码为0)