LPRNet 与 TAO Deploy
从 tao model export
生成的 LPRNet .onnx
文件被用作 tao deploy
的输入,以生成优化的 TensorRT 引擎。有关训练 LPRNet 的更多信息,请参阅 LPRNet 训练文档。
相同的 spec 文件可以像 tao model lprnet export
命令一样使用。
使用以下命令运行 LPRNet 引擎生成
tao deploy lprnet gen_trt_engine [-h] [-v]
-m MODEL_PATH
-e EXPERIMENT_SPEC
-r RESULTS_DIR
[-k KEY]
[--data_type {fp32,fp16}]
[--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]
[--max_workspace_size MAX_WORKSPACE_SIZE]
[--gpu_index GPU_INDEX]
[--log_file LOG_FILE]
必需参数
-m, --model_path
:要转换的.onnx
或.etlt
模型-e, --experiment_spec
:用于设置 TensorRT 引擎生成的实验 spec 文件。这应该与导出规范文件相同。-r, --results_dir
:将转储 JSON 状态日志文件的目录
可选参数
-h, --help
:显示此帮助消息并退出。-k, --key
:用于加载.etlt
模型的用户特定编码密钥。--data_type
:所需的引擎数据类型。选项为fp32
、fp16
。默认值为fp32
。int8
不支持 LPRNet。--engine_file
:序列化的 TensorRT 引擎文件的路径。请注意,此文件特定于硬件,不能在 GPU 之间通用。由于 TensorRT 引擎文件特定于硬件,因此除非部署 GPU 与训练 GPU 完全相同,否则您不能将此引擎文件用于部署。--gpu_index
:用于导出模型的(离散)GPU 的索引。如果机器安装了多个 GPU,您可以指定 GPU 的索引来运行导出。请注意,gen_trt_engine 只能在单个 GPU 上运行。--log_file
:日志文件的路径。默认路径为 “stdout”。
使用示例
以下是使用 gen_trt_engine
命令生成 FP16 TensorRT 引擎的示例
tao deploy lprnet gen_trt_engine -m /workspace/ssd_resnet18_epoch_100_int8.onnx \
-e /workspace/default_spec.txt \
-r /export/ \
--data_type fp16 \
--max_batch_size 8 \
--engine_file /export/fp16.engine
与 TAO 评估 spec 文件相同的 spec 文件。示例 spec 文件
random_seed: 42
lpr_config {
hidden_units: 512
max_label_length: 8
arch: "baseline"
nlayers: 10
}
eval_config {
batch_size: 1
}
augmentation_config {
output_width: 96
output_height: 48
output_channel: 3
}
dataset_config {
data_sources: {
label_directory_path: "/workspace/tao-experiments/datasets/lpr_default_dataset/train/label"
image_directory_path: "/workspace/tao-experiments/datasets/lpr_default_dataset/train/image"
}
characters_list_file: "/workspace/tao-experiments/datasets/lpr_default_dataset/us_lp_characters.txt"
validation_data_sources: {
label_directory_path: "/workspace/tao-experiments/datasets/lpr_default_dataset/test/label"
image_directory_path: "/workspace/tao-experiments/datasets/lpr_default_dataset/test/image"
}
}
使用以下命令运行 LPRNet 引擎评估
tao deploy lprnet evaluate [-h]
-e EXPERIMENT_SPEC
-m MODEL_PATH
-r RESULTS_DIR
[-b BATCH_SIZE]
[--gpu_index GPU_INDEX]
[--log_file LOG_FILE]
必需参数
-e, --experiment_spec
:用于评估的实验 spec 文件。这应该与 tao evaluate 规范文件相同。-m, --model_path
:要运行评估的引擎文件。-r, --results_dir
:将存储评估结果的目录。
可选参数
-b, --batch_size
:用于评估的批次大小。请注意,此值不能大于引擎生成期间使用的--max_batch_size
。如果未指定,则将使用eval_config.batch_size
。
使用示例
以下是使用 evaluate
命令运行 TensorRT 引擎评估的示例
tao deploy lprnet evaluate -m /export/fp16.engine \
-e /workspace/default_spec.txt \
-r /workspace/tao-experiments/evaluate
tao deploy lprnet inference [-h]
-e EXPERIMENT_SPEC
-m MODEL_PATH
-r RESULTS_DIR
[-b BATCH_SIZE]
[--gpu_index GPU_INDEX]
[--log_file LOG_FILE]
必需参数
-e, --experiment_spec
:用于评估的实验 spec 文件。这应该与 tao evaluate 规范文件相同。-m, --model_path
:要运行评估的引擎文件。-r, --results_dir
:将存储评估结果的目录。
可选参数
-b, --batch_size
:用于评估的批次大小。请注意,此值不能大于引擎生成期间使用的--max_batch_size
。如果未指定,则将使用eval_config.batch_size
。
使用示例
以下是使用 inference
命令运行 TensorRT 引擎推理的示例
tao deploy lprnet inference -m /export/fp16.engine \
-e /workspace/default_spec.txt \
-r /workspace/tao-experiments/inference
解码后的预测将打印到 STDOUT
。