[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M78AX9BVAC64ZWHF9A6EEQJ9":3,"skill-same:01M78AX9BVAC64ZWHF9A6EEQJ9":118},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":33,"commitSha":34,"skillDirectory":35,"forksCount":14,"repositoryHtmlUrl":36,"repositoryHomepageUrl":37,"ownerHtmlUrl":38,"ownerBlogUrl":39,"ownerDescription":40,"updatedAt":41,"install":42,"resources":55},"01M78AX9BVAC64ZWHF9A6EEQJ9","tao-train-metric-learning-recognition",null,"Metric-learning recognition (ml-recog) for fine-grained visual recognition. Learns embeddings for retrieval-based matching (e.g., retail product recognition) using triplet \u002F contrastive losses. Use when training, evaluating, exporting, or running inference for a TAO metric-learning recognition model. Trigger phrases include \"train metric learning\", \"ml-recog\", \"retrieval embeddings\", \"triplet loss recognition\", \"fine-grained matching\".","Solizardking\u002Fskillhub-main","Solizardking","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F108096810?v=4","01M786KDB10AYV042N0F9BD5B5","Clawd","01M786NYYXSZK1D05WM8JQPC48",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: tao-train-metric-learning-recognition\ndescription: Metric-learning recognition (ml-recog) for fine-grained visual recognition. Learns embeddings for\n  retrieval-based matching (e.g., retail product recognition) using triplet \u002F contrastive losses. Use when training,\n  evaluating, exporting, or running inference for a TAO metric-learning recognition model. Trigger phrases include\n  \"train metric learning\", \"ml-recog\", \"retrieval embeddings\", \"triplet loss recognition\", \"fine-grained matching\".\nlicense: Apache-2.0\ncompatibility: Requires docker + nvidia-container-toolkit.\nmetadata:\n  version: \"0.1.0\"\n  author: NVIDIA Corporation\nallowed-tools: Read Bash\ntags:\n- metric\n- learning\n- recognition\n---\n\n# ML Recog\n\nMetric learning recognition for fine-grained visual recognition. Learns embeddings for retrieval-based matching (e.g., retail product recognition). Uses triplet\u002Fcontrastive losses.\n\nSet model.pretrained_model_path for pretrained backbone.\n\nFor TAO Deploy TensorRT actions (`gen_trt_engine`, TensorRT `evaluate`, and TensorRT `inference`), read `references\u002Ftao-deploy-metric-learning-recognition.md` first. Deploy spec templates live in this skill's `references\u002F` folder with the `spec_template_deploy_*.yaml` prefix.\n\n## Dataclass Schemas\n\nGenerated TAO Core schemas are packaged in `schemas\u002F\u003Caction>.schema.json`, with `schemas\u002Fmanifest.json` listing available actions. Each generated schema also emits `references\u002Fspec_template_\u003Caction>.yaml` from the schema top-level `default` field. AutoML enablement is declared at the model layer in `references\u002Fskill_info.yaml` via `automl_enabled`. Runnable AutoML still requires `schemas\u002Ftrain.schema.json` and `references\u002Fspec_template_train.yaml` to exist and parse. Use the packaged train schema for `automl_default_parameters`, `automl_disabled_parameters`, defaults, min\u002Fmax bounds, enums, option weights, math conditions, dependencies, and popular parameters. Do not expect `~\u002Ftao-core` at runtime; maintainers regenerate schemas\u002Ftemplates before packaging the skill bank.\n\n## Train Action Policy\n\nThis model is AutoML-enabled at the model layer. Before handling any train-stage request, read `references\u002Fskill_info.yaml` and resolve the run override from either an explicit `automl_policy` value or the user's workflow request. Use `automl_policy: on` by default and only expose `on` \u002F `off` in new launch prompts. Treat phrases like \"turn off AutoML\", \"disable AutoML\", \"no HPO\", or \"plain training\" as `automl_policy: off` for this run only. When `automl_policy: on`, `automl_enabled: true`, and both `schemas\u002Ftrain.schema.json` and `references\u002Fspec_template_train.yaml` are packaged, route the train action through `tao-skill-bank:tao-run-automl` by default with this model's `skill_dir`. Preserve workflow\u002Fapplication overrides for datasets, specs, output directories, GPU\u002Fplatform settings, parent checkpoints, and `automl_policy`. Use direct model training only when `automl_policy: off` or the packaged train schema\u002Ftemplate is missing; in the missing-schema case, report that AutoML is enabled but not runnable for this model until schemas are generated.\n\nNon-train actions such as `evaluate`, `inference`, `export`, and deploy flows stay in this model skill. The per-run `automl_policy` override does not change model metadata.\n\n## Training Requirements\n\n- **Dataset type:** ml_recog\n- **Formats:** default\n- **Monitoring metric:** val Precision at Rank 1\n\n### Per-Action Dataset Requirements\n\n| Action | Spec Key | Source | Files | List? |\n|---|---|---|---|---|\n| evaluate | dataset.val_dataset | train_datasets | reference: metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Freference.tar.gz, query: metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Ftest.tar.gz | No |\n| inference | dataset.val_dataset | train_datasets | reference: metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Freference.tar.gz, query:  | No |\n| inference | inference.input_path | train_datasets | metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Ftest.tar.gz | No |\n| train | dataset.train_dataset | train_datasets | metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Fknown_classes\u002Ftrain.tar.gz | No |\n| train | dataset.val_dataset | train_datasets | reference: metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Fknown_classes\u002Freference.tar.gz, query: metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Fknown_classes\u002Fval.tar.gz | No |\n\n### Typical Spec Overrides\n\nData 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_overrides`.\n\n```python\nS3_TRAIN = \"s3:\u002F\u002Fbucket\u002Fdata\u002Ftrain\"\n```\n\n**train (mandatory data sources):**\n```python\n{\n    \"train.num_epochs\": 30,\n    \"train.checkpoint_interval\": 10,\n    \"train.validation_interval\": 10,\n    \"train.num_gpus\": 1,\n    \"dataset.train_dataset\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Fknown_classes\u002Ftrain.tar.gz\",\n    \"dataset.val_dataset\": {\"reference\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Fknown_classes\u002Freference.tar.gz\", \"query\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Fknown_classes\u002Fval.tar.gz\"},\n}\n```\n\n**evaluate (mandatory data sources):**\n```python\n{\n    \"evaluate.checkpoint\": \"\u003Cselected train\u002FAutoML checkpoint>\",\n    \"dataset.val_dataset\": {\"reference\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Freference.tar.gz\", \"query\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Ftest.tar.gz\"},\n}\n```\n\n**inference (mandatory data sources):**\n```python\n{\n    \"inference.checkpoint\": \"\u003Cselected train\u002FAutoML checkpoint>\",\n    \"dataset.val_dataset\": {\"reference\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Freference.tar.gz\"},\n    \"inference.input_path\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Ftest.tar.gz\",\n}\n```\n## Eval Dataset\n\nRequired. Evaluation requires reference and query datasets for retrieval metrics.\n\n## Important Parameters\n\n- **model.backbone**: Default resnet_50. Options: resnet_50, resnet_101, fan_small, fan_base, fan_large, fan_tiny, nvdinov2_vit_large_legacy.\n- **model.feat_dim**: Embedding dimension. Default 256. Output feature vector size for similarity matching.\n- **train.batch_size**: Per-GPU batch size. Default 4. `val_batch_size` also 4. For training and AutoML search, `train.batch_size` must be divisible by `dataset.num_instance`.\n- **dataset.num_instance**: Instances per identity in a batch (P\u002FK sampling). Default 4. Controls how many images of the same class appear together. If using a custom AutoML range for `train.batch_size`, use explicit options that are multiples of this value.\n- **train.optim.trunk.base_lr**: Learning rate for the trunk (backbone). Default 3.5e-4 (Adam).\n- **train.optim.embedder.base_lr**: Learning rate for the embedding head. Default 3.5e-4.\n- **train.optim.triplet_loss_margin**: Margin for triplet loss. Default 0.3. smooth_loss=True by default.\n- **train.optim.miner_function_margin**: Hard mining margin. Default 0.1. Controls pair mining difficulty.\n- **train.optim.steps**: LR decay steps. Default [40, 70] with gamma=0.1.\n- **dataset.train_dataset**: Path to training images organized in class folders.\n- **dataset.val_dataset**: Dict with 'reference' and 'query' keys pointing to ImageNet-format directories for retrieval evaluation.\n\n## Multi-GPU \u002F Multi-Node\n\n**Launch method:** Lightning-managed (single `python` process, Lightning spawns workers).\n\n| Spec Key | Description | Default |\n|----------|-------------|---------|\n| `train.num_gpus` | Number of GPUs | 1 |\n| `train.gpu_ids` | GPU device indices | [0] |\n\n- Strategy: `auto` (Lightning picks best strategy automatically)\n- No explicit `num_nodes` or `distributed_strategy` config — single-node oriented\n\n## Hardware\n\nMinimum 1 GPU(s), recommended 2 GPU(s). 16GB+ VRAM per GPU. Metric learning benefits from larger batch sizes for better triplet sampling but is otherwise moderate on memory.\n\n## Error Patterns\n\n**Reference\u002Fquery mismatch**: Ensure reference and query datasets share compatible class namespaces for evaluation.\n\n**PyTorch 2.6 checkpoint load failure on checkpoint actions**: Current TAO\nML-Recog checkpoints may contain OmegaConf objects. For checkpoints produced by\nthe same trusted TAO train\u002FAutoML workflow, set\n`TORCH_FORCE_NO_WEIGHTS_ONLY_LOAD=1` in downstream evaluate, inference, export,\nor resume\u002Fretrain job env vars so Lightning can load the full checkpoint. Do not\nuse this env var for untrusted checkpoints.\n\n## Spec Param \u002F Parent Model Inference\n\nModel-specific inference mappings belong in this MD file, not in `config.json`. Generated runners should read this section and apply the mappings with SDK helpers before `create_job()`. This mirrors the old microservices `infer_params.py` flow.\n\nInference mappings from TAO Core `ml_recog.config.json`:\n\n| Action | Spec Field | Inference Function | Meaning |\n|---|---|---|---|\n| evaluate | `evaluate.checkpoint` | `parent_model` | model file inferred from the parent job results folder |\n| evaluate | `results_dir` | `output_dir` | current job results directory |\n| export | `export.checkpoint` | `parent_model` | model file inferred from the parent job results folder |\n| export | `export.onnx_file` | `create_onnx_file` | output ONNX path |\n| export | `results_dir` | `output_dir` | current job results directory |\n| inference | `inference.checkpoint` | `parent_model` | model file inferred from the parent job results folder |\n| inference | `results_dir` | `output_dir` | current job results directory |\n| train | `model.pretrained_model_path` | `ptm_if_no_resume_model` | PTM when no resume checkpoint exists |\n| train | `results_dir` | `output_dir` | current job results directory |\n| train | `train.resume_training_checkpoint_path` | `resume_model` | model file inferred from the current job results folder |\n\nFor `parent_model` or `parent_model_folder`, pass the upstream train\u002Fexport\u002FAutoML child job id as `parent_job_id`. 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 `config.json` and do not patch generated runner scripts to guess checkpoint paths.\n\n## Deployment\n\n- [tao-deploy-metric-learning-recognition](references\u002Ftao-deploy-metric-learning-recognition.md)\n","# ML Recog\n\nMetric learning recognition for fine-grained visual recognition. Learns embeddings for retrieval-based matching (e.g., retail product recognition). Uses triplet\u002Fcontrastive losses.\n\nSet model.pretrained_model_path for pretrained backbone.\n\nFor TAO Deploy TensorRT actions (`gen_trt_engine`, TensorRT `evaluate`, and TensorRT `inference`), read `references\u002Ftao-deploy-metric-learning-recognition.md` first. Deploy spec templates live in this skill's `references\u002F` folder with the `spec_template_deploy_*.yaml` prefix.\n\n## Dataclass Schemas\n\nGenerated TAO Core schemas are packaged in `schemas\u002F\u003Caction>.schema.json`, with `schemas\u002Fmanifest.json` listing available actions. Each generated schema also emits `references\u002Fspec_template_\u003Caction>.yaml` from the schema top-level `default` field. AutoML enablement is declared at the model layer in `references\u002Fskill_info.yaml` via `automl_enabled`. Runnable AutoML still requires `schemas\u002Ftrain.schema.json` and `references\u002Fspec_template_train.yaml` to exist and parse. Use the packaged train schema for `automl_default_parameters`, `automl_disabled_parameters`, defaults, min\u002Fmax bounds, enums, option weights, math conditions, dependencies, and popular parameters. Do not expect `~\u002Ftao-core` at runtime; maintainers regenerate schemas\u002Ftemplates before packaging the skill bank.\n\n## Train Action Policy\n\nThis model is AutoML-enabled at the model layer. Before handling any train-stage request, read `references\u002Fskill_info.yaml` and resolve the run override from either an explicit `automl_policy` value or the user's workflow request. Use `automl_policy: on` by default and only expose `on` \u002F `off` in new launch prompts. Treat phrases like \"turn off AutoML\", \"disable AutoML\", \"no HPO\", or \"plain training\" as `automl_policy: off` for this run only. When `automl_policy: on`, `automl_enabled: true`, and both `schemas\u002Ftrain.schema.json` and `references\u002Fspec_template_train.yaml` are packaged, route the train action through `tao-skill-bank:tao-run-automl` by default with this model's `skill_dir`. Preserve workflow\u002Fapplication overrides for datasets, specs, output directories, GPU\u002Fplatform settings, parent checkpoints, and `automl_policy`. Use direct model training only when `automl_policy: off` or the packaged train schema\u002Ftemplate is missing; in the missing-schema case, report that AutoML is enabled but not runnable for this model until schemas are generated.\n\nNon-train actions such as `evaluate`, `inference`, `export`, and deploy flows stay in this model skill. The per-run `automl_policy` override does not change model metadata.\n\n## Training Requirements\n\n- **Dataset type:** ml_recog\n- **Formats:** default\n- **Monitoring metric:** val Precision at Rank 1\n\n### Per-Action Dataset Requirements\n\n| Action | Spec Key | Source | Files | List? |\n|---|---|---|---|---|\n| evaluate | dataset.val_dataset | train_datasets | reference: metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Freference.tar.gz, query: metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Ftest.tar.gz | No |\n| inference | dataset.val_dataset | train_datasets | reference: metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Freference.tar.gz, query:  | No |\n| inference | inference.input_path | train_datasets | metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Ftest.tar.gz | No |\n| train | dataset.train_dataset | train_datasets | metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Fknown_classes\u002Ftrain.tar.gz | No |\n| train | dataset.val_dataset | train_datasets | reference: metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Fknown_classes\u002Freference.tar.gz, query: metric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Fknown_classes\u002Fval.tar.gz | No |\n\n### Typical Spec Overrides\n\nData 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_overrides`.\n\n```python\nS3_TRAIN = \"s3:\u002F\u002Fbucket\u002Fdata\u002Ftrain\"\n```\n\n**train (mandatory data sources):**\n```python\n{\n    \"train.num_epochs\": 30,\n    \"train.checkpoint_interval\": 10,\n    \"train.validation_interval\": 10,\n    \"train.num_gpus\": 1,\n    \"dataset.train_dataset\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Fknown_classes\u002Ftrain.tar.gz\",\n    \"dataset.val_dataset\": {\"reference\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Fknown_classes\u002Freference.tar.gz\", \"query\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Fknown_classes\u002Fval.tar.gz\"},\n}\n```\n\n**evaluate (mandatory data sources):**\n```python\n{\n    \"evaluate.checkpoint\": \"\u003Cselected train\u002FAutoML checkpoint>\",\n    \"dataset.val_dataset\": {\"reference\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Freference.tar.gz\", \"query\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Ftest.tar.gz\"},\n}\n```\n\n**inference (mandatory data sources):**\n```python\n{\n    \"inference.checkpoint\": \"\u003Cselected train\u002FAutoML checkpoint>\",\n    \"dataset.val_dataset\": {\"reference\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Freference.tar.gz\"},\n    \"inference.input_path\": f\"{S3_TRAIN}\u002Fmetric_learning_recognition\u002Fretail-product-checkout-dataset_classification_demo\u002Funknown_classes\u002Ftest.tar.gz\",\n}\n```\n## Eval Dataset\n\nRequired. Evaluation requires reference and query datasets for retrieval metrics.\n\n## Important Parameters\n\n- **model.backbone**: Default resnet_50. Options: resnet_50, resnet_101, fan_small, fan_base, fan_large, fan_tiny, nvdinov2_vit_large_legacy.\n- **model.feat_dim**: Embedding dimension. Default 256. Output feature vector size for similarity matching.\n- **train.batch_size**: Per-GPU batch size. Default 4. `val_batch_size` also 4. For training and AutoML search, `train.batch_size` must be divisible by `dataset.num_instance`.\n- **dataset.num_instance**: Instances per identity in a batch (P\u002FK sampling). Default 4. Controls how many images of the same class appear together. If using a custom AutoML range for `train.batch_size`, use explicit options that are multiples of this value.\n- **train.optim.trunk.base_lr**: Learning rate for the trunk (backbone). Default 3.5e-4 (Adam).\n- **train.optim.embedder.base_lr**: Learning rate for the embedding head. Default 3.5e-4.\n- **train.optim.triplet_loss_margin**: Margin for triplet loss. Default 0.3. smooth_loss=True by default.\n- **train.optim.miner_function_margin**: Hard mining margin. Default 0.1. Controls pair mining difficulty.\n- **train.optim.steps**: LR decay steps. Default [40, 70] with gamma=0.1.\n- **dataset.train_dataset**: Path to training images organized in class folders.\n- **dataset.val_dataset**: Dict with 'reference' and 'query' keys pointing to ImageNet-format directories for retrieval evaluation.\n\n## Multi-GPU \u002F Multi-Node\n\n**Launch method:** Lightning-managed (single `python` process, Lightning spawns workers).\n\n| Spec Key | Description | Default |\n|----------|-------------|---------|\n| `train.num_gpus` | Number of GPUs | 1 |\n| `train.gpu_ids` | GPU device indices | [0] |\n\n- Strategy: `auto` (Lightning picks best strategy automatically)\n- No explicit `num_nodes` or `distributed_strategy` config — single-node oriented\n\n## Hardware\n\nMinimum 1 GPU(s), recommended 2 GPU(s). 16GB+ VRAM per GPU. Metric learning benefits from larger batch sizes for better triplet sampling but is otherwise moderate on memory.\n\n## Error Patterns\n\n**Reference\u002Fquery mismatch**: Ensure reference and query datasets share compatible class namespaces for evaluation.\n\n**PyTorch 2.6 checkpoint load failure on checkpoint actions**: Current TAO\nML-Recog checkpoints may contain OmegaConf objects. For checkpoints produced by\nthe same trusted TAO train\u002FAutoML workflow, set\n`TORCH_FORCE_NO_WEIGHTS_ONLY_LOAD=1` in downstream evaluate, inference, export,\nor resume\u002Fretrain job env vars so Lightning can load the full checkpoint. Do not\nuse this env var for untrusted checkpoints.\n\n## Spec Param \u002F Parent Model Inference\n\nModel-specific inference mappings belong in this MD file, not in `config.json`. Generated runners should read this section and apply the mappings with SDK helpers before `create_job()`. This mirrors the old microservices `infer_params.py` flow.\n\nInference mappings from TAO Core `ml_recog.config.json`:\n\n| Action | Spec Field | Inference Function | Meaning |\n|---|---|---|---|\n| evaluate | `evaluate.checkpoint` | `parent_model` | model file inferred from the parent job results folder |\n| evaluate | `results_dir` | `output_dir` | current job results directory |\n| export | `export.checkpoint` | `parent_model` | model file inferred from the parent job results folder |\n| export | `export.onnx_file` | `create_onnx_file` | output ONNX path |\n| export | `results_dir` | `output_dir` | current job results directory |\n| inference | `inference.checkpoint` | `parent_model` | model file inferred from the parent job results folder |\n| inference | `results_dir` | `output_dir` | current job results directory |\n| train | `model.pretrained_model_path` | `ptm_if_no_resume_model` | PTM when no resume checkpoint exists |\n| train | `results_dir` | `output_dir` | current job results directory |\n| train | `train.resume_training_checkpoint_path` | `resume_model` | model file inferred from the current job results folder |\n\nFor `parent_model` or `parent_model_folder`, pass the upstream train\u002Fexport\u002FAutoML child job id as `parent_job_id`. 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 `config.json` and do not patch generated runner scripts to guess checkpoint paths.\n\n## Deployment\n\n- [tao-deploy-metric-learning-recognition](references\u002Ftao-deploy-metric-learning-recognition.md)\n",{"name":5,"tags":24,"license":15,"metadata":28,"description":7,"allowed-tools":31,"compatibility":32},[25,26,27],"metric","learning","recognition",{"author":29,"version":30},"NVIDIA Corporation","0.1.0","Read Bash","Requires docker + nvidia-container-toolkit.","main","be3de0244dc1a57e323d8160787ebb40fb64930e","public\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main","https:\u002F\u002Fskills.x402.wtf","https:\u002F\u002Fgithub.com\u002FSolizardking","https:\u002F\u002Fmusebook.trade","Got a mile high and never came down","2026-10-08 23:20:13",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add Solizardking\u002Fskillhub-main --skill tao-train-metric-learning-recognition",{"tool":48,"command":49},"bunx","bunx skills add Solizardking\u002Fskillhub-main --skill tao-train-metric-learning-recognition",{"tool":51,"command":52},"pnpm","pnpm dlx skills add Solizardking\u002Fskillhub-main --skill tao-train-metric-learning-recognition","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002FSKILL.md",true,[56,62,66,70,74,78,82,86,90,94,98,102,106,110,114],{"path":57,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":60,"sourceHtmlUrl":61},"BENCHMARK.md","REFERENCE","参考文档",4192,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002FBENCHMARK.md",{"path":63,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":64,"sourceHtmlUrl":65},"metadata.json",710,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Fmetadata.json",{"path":67,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":68,"sourceHtmlUrl":69},"references\u002Fskill_info.yaml",4828,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Freferences\u002Fskill_info.yaml",{"path":71,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":72,"sourceHtmlUrl":73},"references\u002Fspec_template_deploy_evaluate.yaml",169,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Freferences\u002Fspec_template_deploy_evaluate.yaml",{"path":75,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":76,"sourceHtmlUrl":77},"references\u002Fspec_template_deploy_gen_trt_engine.yaml",582,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Freferences\u002Fspec_template_deploy_gen_trt_engine.yaml",{"path":79,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Fspec_template_deploy_inference.yaml",308,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Freferences\u002Fspec_template_deploy_inference.yaml",{"path":83,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fspec_template_evaluate.yaml",1856,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Freferences\u002Fspec_template_evaluate.yaml",{"path":87,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fspec_template_export.yaml",1776,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Freferences\u002Fspec_template_export.yaml",{"path":91,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fspec_template_gen_trt_engine.yaml",2082,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Freferences\u002Fspec_template_gen_trt_engine.yaml",{"path":95,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fspec_template_inference.yaml",1887,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Freferences\u002Fspec_template_inference.yaml",{"path":99,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fspec_template_train.yaml",1687,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Freferences\u002Fspec_template_train.yaml",{"path":103,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":104,"sourceHtmlUrl":105},"references\u002Ftao-deploy-metric-learning-recognition.md",5877,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Freferences\u002Ftao-deploy-metric-learning-recognition.md",{"path":107,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":108,"sourceHtmlUrl":109},"references\u002Ftao-deploy-metric-learning-recognition.skill_info.yaml",4086,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Freferences\u002Ftao-deploy-metric-learning-recognition.skill_info.yaml",{"path":111,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":112,"sourceHtmlUrl":113},"skill-card.md",3889,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Fskill-card.md",{"path":115,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":116,"sourceHtmlUrl":117},"verification.json",3752,"https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fpublic\u002Fapi\u002Fskills\u002Fnvidia\u002Ftao-train-metric-learning-recognition\u002Fverification.json",[119,127,134,141,148,156],{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":123,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":19},"01M78E0TGCAMNPS207BA3G07S7","zkrouter","Self-hosted OpenAI-compatible LLM router — smart tier-based routing, ZK-stamped routing decisions, mode overrides, free OpenRouter at install via the Birth bot. Save 60-80% on inference costs by routing to the cheapest capable model across 12+ OpenRouter models.","MIT","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fskills\u002Fzkrouter\u002FSKILL.md",[],[],{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":123,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":19},"01M78E0R1Z8BDT6EDTHY17MTNB","zk","For custom ZK Solana programs and privacy-preserving applications to prevent double spending. Guide to integrate rent-free nullifier PDAs for double-spend prevention.","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fskills\u002Fzk\u002FSKILL.md",[],[],{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":123,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":140,"publishedAt":19},"01M78E0P3ZTZ1YWF8MD5MM23QE","zk-omni-messaging","Zero-knowledge omnichain messaging between Robinhood Chain and Solana using CheshireZkOmniMessenger (msgType 4) with nullifier anti-replay and the zk-omni-relayer service.","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fskills\u002Fzk-omni-messaging\u002FSKILL.md",[],[],{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":123,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":19},"01M78E0JXZ2PNB1896VXAGDBWD","zerion-wallet-data","Use when the user asks to check a wallet's portfolio, token balances, DeFi positions, PnL, transaction history, or NFTs. Provides interpreted on-chain data across 40+ EVM chains and Solana via x402 pay-per-request or API key — no raw RPC decoding needed.","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fskills\u002Fzerion-wallet-data\u002FSKILL.md",[],[],{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":123,"licenseFileUrl":152,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":19},"01M78E0G14FH9GRRTQYMKD5E59","youtube-clipper","YouTube 视频智能剪辑工具。下载视频和字幕，AI 分析生成精细章节（几分钟级别）， 用户选择片段后自动剪辑、翻译字幕为中英双语、烧录字幕到视频，并生成总结文案。 使用场景：当用户需要剪辑 YouTube 视频、生成短视频片段、制作双语字幕版本时。 关键词：视频剪辑、YouTube、字幕翻译、双语字幕、视频下载、clip video","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube-clipper\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube-clipper\u002FSKILL.md",[],[],{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":123,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":19},"01M78E0C2ZYA99CFFDNB7ZMK5S","yield-optimization","Multi-chain yield optimization via yield.xyz (StakeKit). Discover 2,988+ yield opportunities across 75+ blockchains, build deposit\u002Fwithdrawal transactions with shell scripts, and sign them with a MoonPay wallet. Use when the user wants to earn yield, find the best lending or staking rate, enter\u002Fexit a position, or check portfolio balances.","https:\u002F\u002Fgithub.com\u002FSolizardking\u002Fskillhub-main\u002Fblob\u002Fmain\u002Fskills\u002Fyield-optimization\u002FSKILL.md",[],[]]