components mmtracking_video_multi_object_tracking_finetune - Azure/azureml-assets GitHub Wiki

Video Multi Object Tracking MMTracking Model Finetune

mmtracking_video_multi_object_tracking_finetune

Overview

Component to finetune MMTracking models for video multi-object tracking task.

Version: 0.0.10

View in Studio: https://ml.azure.com/registries/azureml/components/mmtracking_video_multi_object_tracking_finetune/version/0.0.10

Inputs

component input: model path

Name Description Type Default Optional Enum
model_path Output folder of model selector containing model metadata like config, checkpoints, tokenizer config. uri_folder False

component input: training mltable

Name Description Type Default Optional Enum
training_data Path to the mltable of the training dataset. mltable False

optional component input: validation mltable

Name Description Type Default Optional Enum
validation_data Path to the mltable of the validation dataset. mltable True
image_width Image width that is input to the network. Default is -1 which means it would be overwritten by image_scale in model config. integer -1 True
image_height Image height that is input to the network. Default is -1 which means it would be overwritten by image_scale in model config. integer -1 True
task_name Which task the model is solving. string ['video-multi-object-tracking']
number_of_workers Number of subprocesses to use for data loading (PyTorch only). 0 means that the data will be loaded in the main process. integer 8 True

Training parameters

Name Description Type Default Optional Enum
number_of_epochs Number of training epochs. integer 15 True
max_steps If set to a positive number, the total number of training steps to perform. Overrides 'number_of_epochs'. In case of using a finite iterable dataset the training may stop before reaching the set number of steps when all data is exhausted. integer -1 True
training_batch_size Train batch size. integer 1 True
auto_find_batch_size Flag to enable auto finding of batch size. If the provided 'per_device_train_batch_size' goes into Out Of Memory (OOM) enabling auto_find_batch_size will find the correct batch size by iteratively reducing 'per_device_train_batch_size' by a factor of 2 till the OOM is fixed. boolean False True

learning rate and learning rate scheduler

Name Description Type Default Optional Enum
learning_rate Start learning rate. Defaults to linear scheduler. number 0.0001 True
learning_rate_scheduler The scheduler type to use. string warmup_cosine_with_restarts True ['warmup_linear', 'warmup_cosine', 'warmup_cosine_with_restarts', 'warmup_polynomial', 'constant', 'warmup_constant']
warmup_steps Number of steps used for a linear warmup from 0 to learning_rate. integer 5 True

optimizer

Name Description Type Default Optional Enum
optimizer optimizer to be used while training. string sgd True ['adamw_hf', 'adamw', 'sgd', 'adafactor', 'adagrad']
weight_decay The weight decay to apply (if not zero) to all layers except all bias and LayerNorm weights in AdamW optimizer. number 0.0 True
extra_optim_args Optional additional arguments that are supplied to SGD Optimizer. The arguments should be semi-colon separated key value pairs and should be enclosed in double quotes. For example, "momentum=0.5; nesterov=True" for sgd. Please make sure to use a valid parameter names for the chosen optimizer. For exact parameter names, please refer https://pytorch.org/docs/1.13/generated/torch.optim.SGD.html#torch.optim.SGD for SGD. Parameters supplied in extra_optim_args will take precedence over the parameter supplied via other arguments such as weight_decay. If weight_decay is provided via "weight_decay" parameter and via extra_optim_args both, values specified in extra_optim_args will be used. string True

gradient accumulation

Name Description Type Default Optional Enum
gradient_accumulation_step Number of update steps to accumulate the gradients for, before performing a backward/update pass. integer 1 True

mixed precision training

Name Description Type Default Optional Enum
precision Apply mixed precision training. This can reduce memory footprint by performing operations in half-precision. string 32 True ['32', '16']

primary metric

Name Description Type Default Optional Enum
metric_for_best_model Specify the metric to use to compare two different models. string mean_average_precision True ['mean_average_precision', 'precision', 'recall', 'MOTA', 'MOTP', 'IDF1']

metric thresholds

Name Description Type Default Optional Enum
iou_threshold IOU threshold used during inference in non-maximum suppression post processing. number True
box_score_threshold During inference, only return proposals with a score greater than box_score_threshold. The score is the multiplication of the objectness score and classification probability. number True

random seed

Name Description Type Default Optional Enum
random_seed Random seed that will be set at the beginning of training. integer 42 True

evaluation strategy parameters

Name Description Type Default Optional Enum
evaluation_strategy The evaluation strategy to adopt during training. Please note that the save_strategy and evaluation_strategy should match. string epoch True ['epoch', 'steps']
evaluation_steps Number of update steps between two evals if evaluation_strategy='steps'. Please note that the saving steps should be a multiple of the evaluation steps. integer 500 True

logging strategy parameters

Name Description Type Default Optional Enum
logging_strategy The logging strategy to adopt during training. string epoch True ['epoch', 'steps']
logging_steps Number of update steps between two logs if logging_strategy='steps'. integer 500 True

Save strategy

Name Description Type Default Optional Enum
save_strategy The checkpoint save strategy to adopt during training. Please note that the save_strategy and evaluation_strategy should match. string epoch True ['epoch', 'steps']
save_steps Number of updates steps before two checkpoint saves if save_strategy="steps". Please note that the saving steps should be a multiple of the evaluation steps. integer 500 True

model checkpointing limit

Name Description Type Default Optional Enum
save_total_limit If a value is passed, will limit the total amount of checkpoints. Deletes the older checkpoints in output_dir. If the value is -1 saves all checkpoints". integer 5 True

Early Stopping Parameters

Name Description Type Default Optional Enum
early_stopping Enable early stopping. boolean False True
early_stopping_patience Stop training when the specified metric worsens for early_stopping_patience evaluation calls. integer 1 True

Grad Norm

Name Description Type Default Optional Enum
max_grad_norm Maximum gradient norm (for gradient clipping) number 1.0 True

resume from the input model

Name Description Type Default Optional Enum
resume_from_checkpoint Loads optimizer, Scheduler and Trainer state for finetuning if true. boolean False True
save_as_mlflow_model Save as mlflow model with pyfunc as flavour. boolean True True

Outputs

Name Description Type
mlflow_model_folder Output dir to save the finetune model as mlflow model. mlflow_model
pytorch_model_folder Output dir to save the finetune model as torch model. custom_model

Environment

azureml://registries/azureml/environments/acft-mmtracking-video-gpu/versions/33

⚠️ **GitHub.com Fallback** ⚠️