TAO v5.5.0

使用 TAO Deploy 进行多任务图像分类

tao export 生成的多任务分类 etlt 文件被用作 tao-deploy 的输入,以生成优化的 TensorRT 引擎。有关训练多任务图像分类的更多信息,请参阅多任务图像分类训练文档

可以使用与 tao multitask_classification export 命令相同的 spec 文件。

使用以下命令运行多任务图像分类引擎生成

复制
已复制!
            

tao-deploy multitask_classification gen_trt_engine [-h] [-v] -m MODEL_PATH -k KEY [--data_type {fp32,fp16,int8}] [--engine_file ENGINE_FILE] [--cal_image_dir CAL_IMAGE_DIR] [--cal_data_file CAL_DATA_FILE] [--cal_cache_file CAL_CACHE_FILE] [--max_batch_size MAX_BATCH_SIZE] [--min_batch_size MIN_BATCH_SIZE] [--opt_batch_size OPT_BATCH_SIZE] [--batch_size BATCH_SIZE] [--batches BATCHES] [--max_workspace_size MAX_WORKSPACE_SIZE] [-s STRICT_TYPE_CONSTRAINTS] [--gpu_index GPU_INDEX] [--log_file LOG_FILE]

必需参数

  • -m, --model_path: 要转换的 .etlt 模型。

  • -k, --key: 用户特定的编码密钥,用于加载 .etlt 模型。

可选参数

  • -h, --help: 显示此帮助消息并退出。

  • --data_type: 期望的引擎数据类型。选项为 fp32fp16int8。默认值为 fp32。校准缓存将在 INT8 模式下生成。如果使用 INT8,则需要以下 INT8 参数。

  • --engine_file: 序列化的 TensorRT 引擎文件的路径。请注意,此文件是特定于硬件的,不能在 GPU 之间通用。由于 TensorRT 引擎文件是特定于硬件的,因此除非部署 GPU 与训练 GPU 完全相同,否则您不能使用此引擎文件进行部署。

  • -s, --strict_type_constraints: 一个布尔标志,指示在构建 TensorRT 引擎时是否应用 TensorRT 严格类型约束。

  • --gpu_index: 用于导出模型的(离散)GPU 的索引。如果机器安装了多个 GPU,您可以指定要运行导出的 GPU 的索引。请注意,gen_trt_engine 只能在单个 GPU 上运行。

  • --log_file: 日志文件的路径。默认路径为“stdout”。

INT8 引擎生成必需参数

  • --cal_data_file: 为校准引擎生成的 Tensorfile。如果与 --cal_image_dir 一起使用,这也可以是一个输出文件。

  • --cal_image_dir: 用于校准的图像目录。

注意

--cal_image_dir 参数用于图像,并应用必要的预处理以在 --cal_data_file 参数中提到的路径生成 tensorfile,该 tensorfile 反过来用于校准。生成的 tensorfile 中的批次数从设置为 --batches 参数的值获得,batch_size 从设置为 --batch_size 参数的值获得。请确保 --cal_image_dir 中提到的目录至少包含 batch_size * batches 个图像。有效图像扩展名为 .jpg、.jpeg 和 .png。在这种情况下,校准张量的 input_dimensions.etlt 模型的输入层派生。

INT8 引擎生成可选参数

  • --cal_cache_file: 保存校准缓存文件的路径。默认值为 ./cal.bin

  • --batches: 用于校准的批次数。默认值为 10。

  • --batch_size: 用于校准的批大小。默认值为 1。

  • --max_batch_size: TensorRT 引擎的最大批大小。默认值为 1。

  • --min_batch_size: TensorRT 引擎的最小批大小。默认值为 1。

  • --opt_batch_size: TensorRT 引擎的最佳批大小。默认值为 1。

  • --max_workspace_size: TensorRT 引擎的最大工作区大小,单位为 Gb。默认值为:(2 Gb)。

示例用法

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

复制
已复制!
            

tao-deploy multitask_classification gen_trt_engine -m /workspace/mcls.etlt \ -k $KEY \ --cal_image_dir /workspace/tao-experiments/data/split/test \ --data_type int8 \ --batch_size 8 \ --batches 10 \ --cal_cache_file /export/cal.bin \ --cal_data_file /export/cal.tensorfile \ --engine_file /export/int8.engine

标签文件从 dataset_config.val_csv_path 派生。与 TAO 评估 spec 文件相同的 spec 文件。示例 spec 文件

复制
已复制!
            

model_config { arch: "resnet", n_layers: 18 use_batch_norm: true all_projections: true freeze_blocks: 0 freeze_blocks: 1 input_image_size: "3,80,60" } train_config { preprocess_mode: "caffe" } eval_config { eval_dataset_path: "/workspace/tao-experiments/data/split/test" model_path: "/export/int8.engine" top_k: 3 batch_size: 256 n_workers: 8 enable_center_crop: True }

使用以下命令运行多任务图像分类引擎评估

复制
已复制!
            

tao-deploy multitask_classification evaluate [-h] -e EXPERIMENT_SPEC -m MODEL_PATH [-i IMAGE_DIR] [-l LABEL_DIR] [-b BATCH_SIZE] [-r RESULTS_DIR] [--gpu_index GPU_INDEX] [--log_file LOG_FILE]

必需参数

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

  • -m, --model_path: 要运行评估的引擎文件。

  • -i, --image_dir: 测试图像所在的目录。如果未指定,将使用 spec 文件中的 dataset_config.image_directory_path

  • -r, --results_dir: 将存储评估结果的目录。

  • -b, --batch_size: 用于评估的批大小。请注意,此值不能大于引擎生成期间使用的 --max_batch_size。如果未指定,则将使用 eval_config.batch_size 代替。

示例用法

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

复制
已复制!
            

tao-deploy multitask_classification evaluate -m /export/int8.engine \ -e /workspace/default_spec.txt \ -i /workspace/tao-experiments/data/split/test \ -r /workspace/tao-experiments/evaluate

复制
已复制!
            

tao-deploy multitask_classification inference [-h] -e EXPERIMENT_SPEC -m MODEL_PATH [-i IMAGE_DIR] [-b BATCH_SIZE] [-r RESULTS_DIR] [--gpu_index GPU_INDEX] [--log_file LOG_FILE]

必需参数

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

  • -m, --model_path: 要运行评估的引擎文件。

  • -i, --image_dir: 测试图像所在的目录。如果未指定,将使用 spec 文件中的 dataset_config.image_directory_path

  • -r, --results_dir: 将存储评估结果的目录。

  • -b, --batch_size: 用于评估的批大小。请注意,此值不能大于引擎生成期间使用的 --max_batch_size。如果未指定,则将使用 eval_config.batch_size 代替。

示例用法

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

复制
已复制!
            

tao-deploy multitask_classification evaluate -m /export/int8.engine \ -e /workspace/default_spec.txt \ -i /workspace/tao-experiments/data/split/test \ -r /workspace/tao-experiments/evaluate

csv 预测将存储在 $RESULTS_DIR/result.csv 下。

上一个 使用 TAO Deploy 的 MLRecogNet
下一个 使用 TAO Deploy 的 OCDNet
© 版权所有 2024,NVIDIA。 上次更新于 2024 年 10 月 15 日。