TAO v5.5.0

OCDNet 与 TAO Deploy

为了生成优化的 TensorRT 引擎,OCDNet .onnx 文件(从 tao export 生成)被作为 tao-deploy 的输入。有关训练 OCDNet 模型的更多信息,请参阅 OCDNet 训练文档

gen_trt_engine

实验规范文件中的 gen_trt_engine 参数提供了从 .onnx 文件生成 TensorRT 引擎的选项。以下是一个示例配置

复制
已复制!
            

gen_trt_engine: width: 1280 height: 736 img_mode: BGR onnx_file: '/results/export/model_best.onnx' trt_engine: /results/export/model_int8.engine tensorrt: data_type: int8 workspace_size: 20480 min_batch_size: 1 opt_batch_size: 1 max_batch_size: 1 layers_precision: [ "/backbone/patch_embed/stem/stem.0/Conv:fp32", "/backbone/patch_embed/stages.0/blocks/blocks.0/conv_dw/Conv:fp32", "/backbone/patch_embed/stages.0/blocks/blocks.0/norm/ReduceMean:fp32" ] calibration: cal_image_dir: /data/ocdnet_vit/train/img cal_cache_file: /results/export/cal.bin cal_batch_size: 8 cal_num_batches: 2

参数 数据类型 默认值 描述 支持的值
results_dir string 结果目录的路径
onnx_file string .onnx 模型的路径
trt_engine string 生成的 TensorRT 引擎的绝对路径
width unsigned int 输入宽度 >0
height unsigned int 输入高度 >0
img_mode string BGR 输入图像模式 BGR,RGB,GRAY

tensorrt

tensorrt 参数定义 TensorRT 引擎的生成。

参数 数据类型 默认值 描述 支持的值
data_type string fp32 用于 TensorRT 引擎的精度 fp32/fp16/int8
workspace_size unsigned int 1024 TensorRT 引擎的最大工作区大小 >1024
min_batch_size unsigned int 1 优化配置文件形状的最小批次大小 >0
opt_batch_size unsigned int 1 优化配置文件形状的最佳批次大小 >0
max_batch_size unsigned int 1 优化配置文件形状的最大批次大小 >0
layers_precision List 用于指定层精度的列表 layerName:[precision] precision: fp32/fp16/int8

calibration

calibration 参数定义使用 PTQ INT8 校准的 TensorRT 引擎生成。

参数 数据类型 默认值 描述 支持的值
cal_image_dir string list 包含用于校准的图像的路径列表
cal_cache_file string 要转储的校准缓存文件的路径
cal_batch_size unsigned int 1 校准期间每个批次的批次大小 >0
cal_num_batches unsigned int 1 要校准的批次数量 >0

使用以下命令运行 OCDNet 引擎生成

复制
已复制!
            

tao deploy ocdnet gen_trt_engine -e /path/to/spec.yaml \ gen_trt_engine.onnx_file=/path/to/onnx/file \ gen_trt_engine.trt_engine=/path/to/engine/file \ gen_trt_engine.tensorrt.data_type=<data_type>

必需参数

  • -e, --experiment_spec_file:实验规范文件的路径

  • gen_trt_engine.onnx_file:要转换的 .onnx 模型。如果规范文件中定义了此参数,则可以省略。

  • gen_trt_engine.trt_engine:将存储生成的引擎的路径。如果规范文件中定义了此参数,则可以省略。

  • gen_trt_engine.tensorrt.data_type:要导出的精度。如果规范文件中定义了此参数,则可以省略。

可选参数

  • results_dir:将转储状态日志 JSON 文件的目录

示例用法

以下是使用 gen_trt_engine 命令生成 FP16 TensorRT 引擎的示例

复制
已复制!
            

tao deploy ocdnet gen_trt_engine -e $SPECS_DIR/gen_trt_engine.yaml \ gen_trt_engine.onnx_file=$RESULTS_DIR/export/model_best.onnx \ gen_trt_engine.trt_engine=$RESULTS_DIR/export/ocdnet_model.engine \ gen_trt_engine.tensorrt.data_type=fp16

以下是使用 gen_trt_engine 命令生成 INT8 TensorRT 引擎的示例

复制
已复制!
            

tao deploy ocdnet gen_trt_engine -e $SPECS_DIR/gen_trt_engine.yaml \ gen_trt_engine.onnx_file=$RESULTS_DIR/export/model_best.onnx \ gen_trt_engine.tensorrt.min_batch_size=1 \ gen_trt_engine.tensorrt.opt_batch_size=3 \ gen_trt_engine.tensorrt.max_batch_size=3 \ gen_trt_engine.tensorrt.data_type=int8 \ gen_trt_engine.trt_engine=$RESULTS_DIR/export/ocdnet_model.engine

TAO 评估规范文件 可以重用于此步骤。以下是一个示例规范文件

复制
已复制!
            

model: load_pruned_graph: False pruned_graph_path: /results/prune/pruned_0.1.pth evaluate: results_dir: /results/evaluate checkpoint: /results/train/model_best.pth trt_engine: /results/export/ocdnet_model.engine gpu_id: 0 post_processing: type: SegDetectorRepresenter args: thresh: 0.3 box_thresh: 0.55 max_candidates: 1000 unclip_ratio: 1.5 metric: type: QuadMetric args: is_output_polygon: false dataset: validate_dataset: data_path: ['/data/ocdnet/test'] args: pre_processes: - type: Resize2D args: short_size: - 1280 - 736 resize_text_polys: true img_mode: BGR filter_keys: [] ignore_tags: ['*', '###'] loader: batch_size: 1 shuffle: false pin_memory: false num_workers: 4

使用以下命令运行 OCDNet 引擎评估

复制
已复制!
            

tao deploy ocdnet evaluate -e /path/to/spec.yaml \ results_dir=/path/to/results \ evaluate.trt_engine=/path/to/engine/file

必需参数

  • -e, --experiment_spec:用于评估的实验规范文件。这应该与 tao evaluate 规范文件相同。

  • evaluate.trt_engine:要运行评估的引擎文件。如果在规范文件中定义了此参数,则可以忽略。

可选参数

  • results_dir:将转储状态日志 JSON 文件和评估结果的目录。

示例用法

以下是使用 evaluate 命令通过 TensorRT 引擎运行评估的示例

复制
已复制!
            

tao deploy ocdnet evaluate -e $SPECS_DIR/evaluate.yaml \ results_dir=$RESULTS_DIR \ evaluate.trt_engine=$RESULTS_DIR/export/ocdnet_model.engine

您可以重用 TAO 推理规范文件 用于此步骤。以下是一个示例规范文件

复制
已复制!
            

inference: checkpoint: /results/train/model_best.pth trt_engine: /results/export/ocdnet_model.engine input_folder: /data/ocdnet/test/img width: 1280 height: 736 img_mode: BGR polygon: false results_dir: /results/inference post_processing: type: SegDetectorRepresenter args: thresh: 0.3 box_thresh: 0.55 max_candidates: 1000 unclip_ratio: 1.5

使用以下命令运行 OCDNet 引擎推理

复制
已复制!
            

tao deploy ocdnet inference -e /path/to/spec.yaml \ inference.trt_engine=$RESULTS_DIR/export/ocdnet_model.engine \ inference.input_folder=$DATA_DIR/test/img \ inference.results_dir=$RESULTS_DIR/inference

必需参数

  • -e, --experiment_spec_file:实验规范文件的路径

  • inference.trt_engine:要运行推理的引擎文件。如果规范文件中定义了此参数,则可以省略。

  • inference.input_folder:要运行推理的引擎文件。如果规范文件中定义了此参数,则可以省略。

  • inference.results_dir:将转储状态日志 JSON 文件和推理结果的目录。

    如果规范文件中定义了此参数,则可以省略。

示例用法

以下是使用 inference 命令通过 TensorRT 引擎运行推理的示例

复制
已复制!
            

tao deploy ocdnet inference -e $SPECS_DIR/inference.yaml \ inference.trt_engine=$RESULTS_DIR/export/ocdnet_model.engine \ inference.input_folder=$DATA_DIR/test/img \ inference.results_dir=$RESULTS_DIR/inference

上一篇 使用 TAO Deploy 进行多任务图像分类
下一篇 RetinaNet 与 TAO Deploy
© 版权所有 2024, NVIDIA。 上次更新时间:2024 年 10 月 15 日。