What can I help you with?
NVIDIA Clara Train 3.1

Model Config

Model config is the configuration to describe an inference workflow in AIAA. It is divided into the following sections (bold means required):

  1. Basic Information:

    • version: The version of AIAA, should be 3 or 2.

    • type: Following are the types of model currently supported in AIAA

      • segmentation

      • annotation

      • classification

      • deepgrow

      • others

      • pipeline

    • labels: The organs/subject of interest of this model.

    • description: A text to describe this model.

    Note

    Note that for compatibility reason, the type of DExtr3D model is “annotation”.


  2. Pre-Transforms:

    What transforms to do before the data is passed into the model. Each transform will have

    • name: Name of the transform. It can be a short name or full qualified name with class path (in case of bring your own transforms)

    • args: List of arguments passed during creation of transform object

    Example:

    Copy
    Copied!
                

    { "name": "LoadNifti", "args": { "fields": "image", "as_closest_canonical": "false" } }

    Note

    Transform should be either a callable object or derived from Clara Train transforms. Please refer to Bring your own Transforms for details.


  3. Inference:

    • image: The field to input images/volumes. (default: "image")

    • image_format: The shape format of the input image. This is required only if you don’t specify shape format in your pre-transforms.

    • name: Name of Inference. Built-Ins are:

      • TRTISInference: Triton/TRTIS Inference (strongly recommended) which supports simple and scanning window inference logic

      • TFInference: Native TensorFlow Inference which supports simple and scanning window inference logic

    • args: List of arguments passed during creation of Inference object

    • node_mapping: Map from model tensor names to field. (default: {"NV_MODEL_INPUT": "image", "NV_MODEL_OUTPUT": "model"})

    • additional_info: Additional info which will be passed to client in model info

    • trtis (required for Triton/TRTIS engine):

      This section contains Triton model configuration. Please refer to Triton Model Configuration to add any Triton specific settings

    • tf (TF model node mapping, is required in native mode):

      • input_nodes: Map from field to model input tensor names. Usually "image": "NV_MODEL_INPUT".

      • output_nodes: Map from field to model output tensor names. Usually "model": "NV_MODEL_OUTPUT".

    Note

    In case of custom Inference, you can provide fully qualified name with class path.

    Such custom Inference should be either a callable object or implements AIAA Inference interface.


  4. Post-Transforms:

    What transforms to do after predictions. Semantics are same as Pre-Transforms.

  5. Writer:

    What writer to use to write results out.

Note

For PyTorch models with Triton, the platform of the Triton model config should be set to “pytorch_libtorch”.

For Triton related attributes can refer to Triton documentation.

Attention

If you want to upload TensorFlow ckpt model, you need to specify the tf part.

Attention

The config_aiaa.json in v1.x is not compatible with current release. Check Converting from previous TLT to modify your config file.

The following is an example of config_aiaa.json for the model clara_ct_seg_spleen_amp

Copy
Copied!
            

{ "version": "3", "type": "segmentation", "labels": [ "spleen" ], "description": "A pre-trained model for volumetric (3D) segmentation of the spleen from CT image", "pre_transforms": [ { "name": "LoadNifti", "args": { "fields": "image" } }, { "name": "ConvertToChannelsFirst", "args": { "fields": "image" } }, { "name": "ScaleByResolution", "args": { "fields": "image", "target_resolution": [1.0, 1.0, 1.0] } }, { "name": "ScaleIntensityRange", "args": { "fields": "image", "a_min": -57, "a_max": 164, "b_min": 0.0, "b_max": 1.0, "clip": true } } ], "inference": { "image": "image", "name": "TRTISInference", "args": { "scanning_window": true, "batch_size": 1, "roi": [160, 160, 160] }, "trtis": { "platform": "tensorflow_graphdef", "max_batch_size": 1, "input": [ { "name": "NV_MODEL_INPUT", "data_type": "TYPE_FP32", "dims": [1, 160, 160, 160] } ], "output": [ { "name": "NV_MODEL_OUTPUT", "data_type": "TYPE_FP32", "dims": [2, 160, 160, 160] } ], "instance_group": [ { "count": 1, "kind": "KIND_AUTO" } ] }, "tf": { "input_nodes": { "image": "NV_MODEL_INPUT" }, "output_nodes": { "model": "NV_MODEL_OUTPUT" } } }, "post_transforms": [ { "name": "ArgmaxAcrossChannels", "args": { "fields": "model" } }, { "name": "FetchExtremePoints", "args": { "image_field": "image", "label_field": "model", "points": "points" } }, { "name": "CopyProperties", "args": { "fields": ["model"], "from_field": "image", "properties": ["affine"] } }, { "name": "RestoreOriginalShape", "args": { "field": "model", "src_field": "image", "is_label": true } } ], "writer": { "name": "WriteNifti", "args": { "field": "model", "dtype": "uint8" } } }

© Copyright 2020, NVIDIA. Last updated on Feb 2, 2023.