VisualChangeNet-使用 TAO Deploy 进行分类
生成优化的 TensorRT 引擎
使用
tao model visual_changenet export
生成 VisualChangeNet.onnx
文件。将
.onnx
文件指定为tao deploy visual_changenet gen_trt_engine
的输入。
有关训练 VisualChangeNet 模型的更多信息,请参阅 VisualChangeNet 训练文档。
gen_trt_engine
以下是用于生成 TensorRT 引擎的示例配置文件
task: classify
gen_trt_engine:
results_dir: "${results_dir}/gen_trt_engine"
onnx_file: "${results_dir}/export/changenet_model.onnx"
trt_engine: "${results_dir}/gen_trt_engine/changenet.trt"
input_channel: 3
input_width: 128
input_height: 512
tensorrt:
data_type: fp32
workspace_size: int = 1024
min_batch_size: int = 1
opt_batch_size: int = 1
max_batch_size: int = 1
task
部分定义了生成 .onnx
模型的更改检测任务。
参数 | 数据类型 | 默认值 | 描述 |
task |
str | classify | 指示更改检测任务的标志。支持两个任务:“segment”和“classify”,分别用于分割和分类。 |
实验规范文件中的 gen_trt_engine
部分提供了从 .onnx
文件生成 TensorRT 引擎的选项。
参数 | 数据类型 | 默认值 | 描述 | 支持的值 |
results_dir |
string | – | 结果目录的路径 | – |
onnx_file |
string | – | 导出的 ETLT 或 ONNX 模型的路径 | – |
trt_engine |
string | – | 生成的 TensorRT 引擎的绝对路径 | – |
input_channel |
unsigned int | 3 | 输入通道大小。仅支持值 3。 | 3 |
input_width |
unsigned int | 128 | 输入宽度 | >0 |
input_height |
unsigned int | 512 | 输入高度 | >0 |
batch_size |
unsigned int | -1 | ONNX 模型的批次大小 | >=-1 |
tensorrt
tensorrt
参数定义 TensorRT 引擎生成。
参数 | 数据类型 | 默认值 | 描述 | 支持的值 |
data_type |
string | fp32 | 用于 TensorRT 引擎的精度 | fp32/fp16 |
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 |
使用以下命令运行 VisualChangeNet 引擎生成
tao deploy visual_changenet gen_trt_engine -e /path/to/spec.yaml \
results_dir=/path/to/result_dir \
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
:实验规范文件的路径。results_dir
:全局结果目录。引擎生成日志将保存在results_dir
中。gen_trt_engine.onnx_file
:要转换的.onnx
模型。gen_trt_engine.trt_engine
:将存储生成的引擎的路径。gen_trt_engine.tensorrt.data_type
:要导出的精度。
示例用法
以下是使用 gen_trt_engine
命令生成 fp32 TensorRT 引擎的示例
tao deploy visual_changenet gen_trt_engine -e $DEFAULT_SPEC
results_dir=$RESULTS_DIR
gen_trt_engine.onnx_file=$ONNX_FILE \
gen_trt_engine.trt_engine=$ENGINE_FILE \
gen_trt_engine.tensorrt.data_type=fp32
您可以重用为 TAO 推理指定的规范文件。以下是示例推理规范
task: classify
model:
classify:
eval_margin: 0.5
dataset:
classify:
infer_dataset:
csv_path: /path/to/infer.csv
images_dir: /path/to/img_dir
image_ext: .jpg
batch_size: 16
workers: 2
num_input: 4
input_map:
LowAngleLight: 0
SolderLight: 1
UniformLight: 2
WhiteLight: 3
concat_type: linear
grid_map:
x: 2
y: 2
output_shape:
- 128
- 128
augmentation_config:
rgb_input_mean: [0.485, 0.456, 0.406]
rgb_input_std: [0.229, 0.224, 0.225]
num_classes: 2
inference:
gpu_id: 0
trt_engine: /path/to/engine/file
results_dir: "${results_dir}/inference"
使用以下命令运行 VisualChangeNet-Classification 引擎推理
tao deploy visual_changenet inference -e /path/to/spec.yaml \
results_dir=$RESULTS_DIR \
inference.trt_engine=/path/to/engine/file \
model.classify.eval_margin=0.5
必需参数
-e, --experiment_spec_file
:实验规范文件的路径。这应与tao inference
规范文件相同。
可选参数
results_dir
:JSON 状态日志文件和推理结果将转储到的目录。inference.trt_engine
:用于推理的引擎文件。model.classify.eval_margin
:VisualChangeNet-Classification 的评估阈值。
示例用法
以下是使用 inference
命令通过 TensorRT 引擎运行推理的示例
tao deploy visual_changenet inference -e $DEFAULT_SPEC
results_dir=$RESULTS_DIR
inference.trt_engine=$ENGINE_FILE
model.classify.eval_margin=$EVAL_MARGIN
您可以重用为通过 TensorRT 引擎进行 TAO 评估指定的规范文件。以下是示例规范文件
task: classify
model:
classify:
eval_margin: 0.5
dataset:
classify:
infer_dataset:
csv_path: /path/to/infer.csv
images_dir: /path/to/img_dir
image_ext: .jpg
batch_size: 16
workers: 2
num_input: 4
input_map:
LowAngleLight: 0
SolderLight: 1
UniformLight: 2
WhiteLight: 3
concat_type: linear
grid_map:
x: 2
y: 2
output_shape:
- 128
- 128
augmentation_config:
rgb_input_mean: [0.485, 0.456, 0.406]
rgb_input_std: [0.229, 0.224, 0.225]
num_classes: 2
evaluate:
gpu_id: 0
trt_engine: /path/to/engine/file
results_dir: "${results_dir}/inference"
使用以下命令运行 VisualChangeNet-Classification 引擎评估
tao deploy visual_changenet evaluate -e /path/to/spec.yaml \
results_dir=$RESULTS_DIR \
evaluate.trt_engine=/path/to/engine/file \
model.classify.eval_margin=0.5
必需参数
-e, --experiment_spec
:用于评估的实验规范文件。这应与tao evaluate
规范文件相同。
可选参数
results_dir
:JSON 状态日志文件和评估结果将转储到的目录。evaluate.trt_engine
:用于评估的引擎文件。model.classify.eval_margin
:VisualChangeNet-Classification 的评估阈值。
示例用法
以下是使用 evaluate
命令通过 TensorRT 引擎运行评估的示例
tao deploy visual_changenet evaluate -e $DEFAULT_SPEC
results_dir=$RESULTS_DIR \
evaluate.trt_engine=$ENGINE_FILE
model.classify.eval_margin=0=$EVAL_MARGIN