tao-train-reid
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRe-Identification
行人重识别(Re-Identification)
Person re-identification. Learns discriminative embeddings to match the same person across different camera views. Metric learning based.
Set model.pretrained_model_path for pretrained weights.
行人重识别(Person re-identification)。基于度量学习,学习判别性嵌入以在不同摄像头视角下匹配同一行人。
设置以加载预训练权重。
model.pretrained_model_pathDataclass Schemas
数据类模式(Dataclass Schemas)
Generated TAO Core schemas are packaged in , with listing available actions. Each generated schema also emits from the schema top-level field. AutoML enablement is declared at the model layer in via . Runnable AutoML still requires and to exist and parse. Use the packaged train schema for , , defaults, min/max bounds, enums, option weights, math conditions, dependencies, and popular parameters. Do not expect at runtime; maintainers regenerate schemas/templates before packaging the skill bank.
schemas/<action>.schema.jsonschemas/manifest.jsonreferences/spec_template_<action>.yamldefaultreferences/skill_info.yamlautoml_enabledschemas/train.schema.jsonreferences/spec_template_train.yamlautoml_default_parametersautoml_disabled_parameters~/tao-core生成的TAO Core模式打包在中,会列出可用的操作。每个生成的模式还会从模式顶层的字段生成。AutoML启用状态在的模型层通过声明。可运行的AutoML仍要求和存在且可解析。使用打包的训练模式配置、、默认值、最小/最大边界、枚举值、选项权重、数学条件、依赖关系以及常用参数。运行时不要依赖;维护人员会在打包技能库前重新生成模式/模板。
schemas/<action>.schema.jsonschemas/manifest.jsondefaultreferences/spec_template_<action>.yamlreferences/skill_info.yamlautoml_enabledschemas/train.schema.jsonreferences/spec_template_train.yamlautoml_default_parametersautoml_disabled_parameters~/tao-coreTrain Action Policy
训练操作策略(Train Action Policy)
This model is AutoML-enabled at the model layer. Before handling any train-stage request, read and resolve the run override from either an explicit value or the user's workflow request. Treat phrases like "turn off AutoML", "disable AutoML", "no HPO", or "plain training" as for this run only; otherwise default to . When , , and both and are packaged, route the train action through by default with this model's . Preserve workflow/application overrides for datasets, specs, output directories, GPU/platform settings, parent checkpoints, and . Use direct model training only when or the packaged train schema/template is missing; in the missing-schema case, report that AutoML is enabled but not runnable for this model until schemas are generated.
references/skill_info.yamlautoml_policyautoml_policy: offautoautoml_policy: autoautoml_enabled: trueschemas/train.schema.jsonreferences/spec_template_train.yamltao-skill-bank:tao-run-automlskill_dirautoml_policyautoml_policy: offNon-train actions such as , , , and deploy flows stay in this model skill. The per-run override does not change model metadata.
evaluateinferenceexportautoml_policy该模型在模型层支持AutoML。处理任何训练阶段请求前,需读取,并通过显式的值或用户的工作流请求确定运行覆盖规则。将“turn off AutoML”、“disable AutoML”、“no HPO”或“plain training”这类短语视为本次运行的;否则默认设为。当、,且和均已打包时,默认将训练操作通过路由,并传入该模型的。保留数据集、规格、输出目录、GPU/平台设置、父检查点和的工作流/应用覆盖规则。仅当或打包的训练模式/模板缺失时,才使用直接模型训练;若模式缺失,需报告该模型已启用AutoML但无法运行,直至生成对应的模式。
references/skill_info.yamlautoml_policyautoml_policy: offautoautoml_policy: autoautoml_enabled: trueschemas/train.schema.jsonreferences/spec_template_train.yamltao-skill-bank:tao-run-automlskill_dirautoml_policyautoml_policy: off非训练操作(如、、以及部署流程)仍在该模型技能中执行。每次运行的覆盖规则不会更改模型元数据。
evaluateinferenceexportautoml_policyTraining Requirements
训练要求
- Dataset type: re_identification
- Formats: default
- Monitoring metric: cmc_rank_1
- 数据集类型: re_identification
- 格式: default
- 监控指标: cmc_rank_1
Per-Action Dataset Requirements
各操作的数据集要求
| Action | Spec Key | Source | Files | List? |
|---|---|---|---|---|
| evaluate | evaluate.test_dataset | train_datasets | sample_test.tar.gz | No |
| evaluate | evaluate.query_dataset | train_datasets | sample_query.tar.gz | No |
| inference | inference.test_dataset | train_datasets | sample_test.tar.gz | No |
| inference | inference.query_dataset | train_datasets | sample_query.tar.gz | No |
| train | dataset.train_dataset_dir | train_datasets | sample_train.tar.gz | No |
| train | dataset.test_dataset_dir | train_datasets | sample_test.tar.gz | No |
| train | dataset.query_dataset_dir | train_datasets | sample_query.tar.gz | No |
| 操作 | 规格键 | 来源 | 文件 | 是否为列表? |
|---|---|---|---|---|
| evaluate | evaluate.test_dataset | train_datasets | sample_test.tar.gz | 否 |
| evaluate | evaluate.query_dataset | train_datasets | sample_query.tar.gz | 否 |
| inference | inference.test_dataset | train_datasets | sample_test.tar.gz | 否 |
| inference | inference.query_dataset | train_datasets | sample_query.tar.gz | 否 |
| train | dataset.train_dataset_dir | train_datasets | sample_train.tar.gz | 否 |
| train | dataset.test_dataset_dir | train_datasets | sample_test.tar.gz | 否 |
| train | dataset.query_dataset_dir | train_datasets | sample_query.tar.gz | 否 |
Typical Spec Overrides
典型规格覆盖
Data source overrides are mandatory for every action — the agent MUST construct data source paths from the Per-Action Dataset Requirements table above and include them in .
spec_overridespython
S3_TRAIN = "s3://bucket/data/train"train (mandatory data sources):
python
{
"train.num_epochs": 30,
"train.checkpoint_interval": 10,
"train.validation_interval": 10,
"train.num_gpus": 1,
"num_classes": 100,
"num_workers": 4,
"batch_size": 16,
"dataset.train_dataset_dir": f"{S3_TRAIN}/sample_train.tar.gz",
"dataset.test_dataset_dir": f"{S3_TRAIN}/sample_test.tar.gz",
"dataset.query_dataset_dir": f"{S3_TRAIN}/sample_query.tar.gz",
}evaluate (mandatory data sources):
python
{
"evaluate.test_dataset": f"{S3_TRAIN}/sample_test.tar.gz",
"evaluate.query_dataset": f"{S3_TRAIN}/sample_query.tar.gz",
}inference (mandatory data sources):
python
{
"inference.test_dataset": f"{S3_TRAIN}/sample_test.tar.gz",
"inference.query_dataset": f"{S3_TRAIN}/sample_query.tar.gz",
}数据源覆盖对每个操作都是必填项——智能体必须根据上述“各操作的数据集要求”表格构建数据源路径,并将其包含在中。
spec_overridespython
S3_TRAIN = "s3://bucket/data/train"train(必填数据源):
python
{
"train.num_epochs": 30,
"train.checkpoint_interval": 10,
"train.validation_interval": 10,
"train.num_gpus": 1,
"num_classes": 100,
"num_workers": 4,
"batch_size": 16,
"dataset.train_dataset_dir": f"{S3_TRAIN}/sample_train.tar.gz",
"dataset.test_dataset_dir": f"{S3_TRAIN}/sample_test.tar.gz",
"dataset.query_dataset_dir": f"{S3_TRAIN}/sample_query.tar.gz",
}evaluate(必填数据源):
python
{
"evaluate.test_dataset": f"{S3_TRAIN}/sample_test.tar.gz",
"evaluate.query_dataset": f"{S3_TRAIN}/sample_query.tar.gz",
}inference(必填数据源):
python
{
"inference.test_dataset": f"{S3_TRAIN}/sample_test.tar.gz",
"inference.query_dataset": f"{S3_TRAIN}/sample_query.tar.gz",
}Eval Dataset
评估数据集
Required. Evaluation requires test and query datasets for retrieval-based metrics (CMC, mAP).
必填项。评估需要测试数据集和查询数据集来计算基于检索的指标(CMC、mAP)。
Important Parameters
重要参数
- dataset.num_classes: Number of identities. Default 751. Must match the number of unique identities in training data.
- model.backbone: Default resnet_50.
- optim.base_lr: Base learning rate. Default 3.5e-4.
- dataset.batch_size: Per-GPU batch size. Default 64. Re-ID benefits from large batches for better triplet/contrastive sampling.
- dataset.num_instances: Number of instances per identity in a batch. Controls sampling strategy for metric learning.
- dataset.num_classes: 身份数量。默认值为751。必须与训练数据中的唯一身份数量匹配。
- model.backbone: 默认值为resnet_50。
- optim.base_lr: 基础学习率。默认值为3.5e-4。
- dataset.batch_size: 单GPU批次大小。默认值为64。ReID模型受益于大批次,以便更好地进行三元组/对比采样。
- dataset.num_instances: 一个批次中每个身份的实例数量。控制度量学习的采样策略。
Multi-GPU / Multi-Node
多GPU/多节点
Launch method: Lightning-managed (single process, Lightning spawns workers).
python| Spec Key | Description | Default |
|---|---|---|
| Number of GPUs | 1 |
| GPU device indices | [0] |
- Multi-GPU strategy:
ddp_find_unused_parameters_true - is always enabled
sync_batchnorm - Precision forced to FP16 ()
16-mixed - No explicit config — single-node oriented
num_nodes
启动方式: Lightning管理(单个进程,Lightning生成工作进程)。
python| 规格键 | 描述 | 默认值 |
|---|---|---|
| GPU数量 | 1 |
| GPU设备索引 | [0] |
- 多GPU策略:
ddp_find_unused_parameters_true - 始终启用
sync_batchnorm - 精度强制设为FP16()
16-mixed - 无明确的配置——面向单节点场景
num_nodes
Hardware
硬件要求
Minimum 1 GPU(s), recommended 2 GPU(s). 16GB+ VRAM per GPU. Re-ID models are relatively lightweight but benefit from large batch sizes for metric learning.
最低1块GPU,推荐2块GPU。每块GPU需16GB+显存。ReID模型相对轻量化,但大批次对度量学习更有利。
Error Patterns
错误模式
num_classes mismatch: Ensure dataset.num_classes equals the number of unique identity folders in the training set.
Query/gallery mismatch: Query and test (gallery) datasets must share the same identity namespace.
num_classes不匹配: 确保等于训练集中唯一身份文件夹的数量。
dataset.num_classes查询/图库不匹配: 查询数据集和测试(图库)数据集必须共享相同的身份命名空间。
Spec Param / Parent Model Inference
规格参数/父模型推理
Model-specific inference mappings belong in this MD file, not in . Generated runners should read this section and apply the mappings with SDK helpers before . This mirrors the old microservices flow.
config.jsoncreate_job()infer_params.pyInference mappings from TAO Core :
re_identification.config.json| Action | Spec Field | Inference Function | Meaning |
|---|---|---|---|
| evaluate | | | encryption key |
| evaluate | | | model file inferred from the parent job results folder |
| evaluate | | | ReID CMC plot path |
| evaluate | | | ReID sampled matches plot path |
| evaluate | | | current job results directory |
| export | | | encryption key |
| export | | | model file inferred from the parent job results folder |
| export | | | output ONNX path |
| export | | | current job results directory |
| inference | | | encryption key |
| inference | | | model file inferred from the parent job results folder |
| inference | | | ReID inference JSON path |
| inference | | | current job results directory |
| train | | | encryption key |
| train | | | PTM when no resume checkpoint exists |
| train | | | current job results directory |
| train | | | model file inferred from the current job results folder |
For or , pass the upstream train/export/AutoML child job id as . The SDK lists the parent result folder, filters checkpoint artifacts, and returns the selected model file or folder. Do not add these mappings back to and do not patch generated runner scripts to guess checkpoint paths.
parent_modelparent_model_folderparent_job_idconfig.json模型特定的推理映射应放在此MD文件中,而非。生成的运行器应读取此部分,并在前使用SDK助手应用映射。这与旧微服务的流程一致。
config.jsoncreate_job()infer_params.py来自TAO Core 的推理映射:
re_identification.config.json| 操作 | 规格字段 | 推理函数 | 含义 |
|---|---|---|---|
| evaluate | | | 加密密钥 |
| evaluate | | | 从父作业结果文件夹推断出的模型文件 |
| evaluate | | | ReID CMC曲线图表路径 |
| evaluate | | | ReID采样匹配图表路径 |
| evaluate | | | 当前作业结果目录 |
| export | | | 加密密钥 |
| export | | | 从父作业结果文件夹推断出的模型文件 |
| export | | | 输出ONNX路径 |
| export | | | 当前作业结果目录 |
| inference | | | 加密密钥 |
| inference | | | 从父作业结果文件夹推断出的模型文件 |
| inference | | | ReID推理JSON路径 |
| inference | | | 当前作业结果目录 |
| train | | | 加密密钥 |
| train | | | 无恢复检查点时的预训练模型(PTM) |
| train | | | 当前作业结果目录 |
| train | | | 从当前作业结果文件夹推断出的模型文件 |
对于或,需传入上游训练/导出/AutoML子作业ID作为。SDK会列出父结果文件夹,过滤检查点工件,并返回选中的模型文件或文件夹。请勿将这些映射添加回,也不要修改生成的运行器脚本以猜测检查点路径。
parent_modelparent_model_folderparent_job_idconfig.json