13 const std::string path =
"./test_manifest.yml";
14 std::ofstream out(path);
15 out <<
"schema_version: '2.0'\n";
17 out <<
" bundle_name: 'pbod_fp16_gpu_onnx_test'\n";
18 out <<
" export_format: 'onnx_fp16_gpu'\n";
19 out <<
" backend: 'onnx'\n";
20 out <<
" precision: 'fp16'\n";
21 out <<
" device: 'cuda'\n";
23 out <<
" model: 'model.onnx'\n";
24 out <<
" checkpoint: 'checkpoints/best.pt'\n";
25 out <<
" resolved_training_config: 'config/resolved_training_config.yml'\n";
27 out <<
" enabled: false\n";
29 out <<
" - name: 'point_features'\n";
30 out <<
" dtype: 'float16'\n";
31 out <<
" shape: ['batch', 100, 1]\n";
33 out <<
" - name: 'reg_logits'\n";
34 out <<
" dtype: 'float16'\n";
35 out <<
" shape: ['batch', 10, 7]\n";
36 out <<
"frozen_contract:\n";
37 out <<
" preprocessing:\n";
38 out <<
" max_num_points: 100\n";
39 out <<
" num_point_features: 1\n";
40 out <<
" point_cloud_range:\n";
41 out <<
" x: [-1.0, 1.0]\n";
42 out <<
" y: [-1.0, 1.0]\n";
43 out <<
" z: [-1.0, 1.0]\n";
44 out <<
" voxel_size:\n";
48 out <<
" point_feature_normalization:\n";
49 out <<
" type: value_threshold\n";
50 out <<
" epsilon: 1e-6\n";
51 out <<
" postprocessing:\n";
52 out <<
" grid_size:\n";
55 out <<
" num_classes: 1\n";
56 out <<
" class_names: ['car']\n";
58 out <<
" stride: [2, 1, 2]\n";
59 out <<
" up_stride: [1, 1, 2]\n";
60 out <<
" first_up_stride: 1\n";
61 out <<
" pillar_map_size: [10, 10]\n";
62 out <<
" pillar_map_range: [[-1.0, 1.0], [-1.0, 1.0], [-1.0, 1.0]]\n";
63 out <<
"runtime_defaults:\n";
64 out <<
" preprocessing:\n";
65 out <<
" point_feature:\n";
66 out <<
" value_threshold: 1.0\n";
67 out <<
" postprocessing:\n";
68 out <<
" class_score_threshold: 0.0\n";
70 out <<
" score_threshold: 0.2\n";
71 out <<
" iou_threshold: 0.5\n";
72 out <<
" max_num_objects: 10\n";
77 assert(manifest.frozen_contract.preprocessing.max_num_points == 100);
78 assert(manifest.runtime_defaults.preprocessing.point_feature.value_threshold == 1.0f);
80 const std::string invalid_path =
"./test_manifest_invalid.yml";
81 std::ofstream invalid(invalid_path);
82 invalid <<
"schema_version: '2.0'\n";
83 invalid <<
"artifact:\n";
84 invalid <<
" bundle_name: 'pbod_fp16_gpu_onnx_test'\n";
85 invalid <<
" export_format: 'onnx_fp16_gpu'\n";
86 invalid <<
" backend: 'onnx'\n";
87 invalid <<
" precision: 'fp16'\n";
88 invalid <<
" device: 'cuda'\n";
89 invalid <<
" hardware_compatible: true\n";
90 invalid <<
" files:\n";
91 invalid <<
" model: 'model.onnx'\n";
92 invalid <<
" checkpoint: 'checkpoints/best.pt'\n";
93 invalid <<
" resolved_training_config: 'config/resolved_training_config.yml'\n";
94 invalid <<
" triton:\n";
95 invalid <<
" enabled: false\n";
96 invalid <<
" inputs:\n";
97 invalid <<
" - name: 'point_features'\n";
98 invalid <<
" dtype: 'float16'\n";
99 invalid <<
" shape: ['batch', 100, 1]\n";
100 invalid <<
" outputs:\n";
101 invalid <<
" - name: 'reg_logits'\n";
102 invalid <<
" dtype: 'float16'\n";
103 invalid <<
" shape: ['batch', 10, 7]\n";
104 invalid <<
"frozen_contract:\n";
105 invalid <<
" preprocessing:\n";
106 invalid <<
" max_num_points: 100\n";
107 invalid <<
" num_point_features: 1\n";
108 invalid <<
" point_cloud_range:\n";
109 invalid <<
" x: [-1.0, 1.0]\n";
110 invalid <<
" y: [-1.0, 1.0]\n";
111 invalid <<
" z: [-1.0, 1.0]\n";
112 invalid <<
" voxel_size:\n";
113 invalid <<
" x: 0.1\n";
114 invalid <<
" y: 0.1\n";
115 invalid <<
" z: 0.1\n";
116 invalid <<
" point_feature_normalization:\n";
117 invalid <<
" type: value_threshold\n";
118 invalid <<
" epsilon: 1e-6\n";
119 invalid <<
" postprocessing:\n";
120 invalid <<
" grid_size:\n";
121 invalid <<
" x: 10\n";
122 invalid <<
" y: 10\n";
123 invalid <<
" num_classes: 1\n";
124 invalid <<
" class_names: ['car']\n";
125 invalid <<
" model:\n";
126 invalid <<
" stride: [2, 1, 2]\n";
127 invalid <<
" up_stride: [1, 1, 2]\n";
128 invalid <<
" first_up_stride: 1\n";
129 invalid <<
" pillar_map_size: [10, 10]\n";
130 invalid <<
" pillar_map_range: [[-1.0, 1.0], [-1.0, 1.0], [-1.0, 1.0]]\n";
131 invalid <<
"runtime_defaults:\n";
132 invalid <<
" preprocessing:\n";
133 invalid <<
" point_feature:\n";
134 invalid <<
" value_threshold: 1.0\n";
135 invalid <<
" postprocessing:\n";
136 invalid <<
" class_score_threshold: 0.0\n";
137 invalid <<
" nms:\n";
138 invalid <<
" score_threshold: 0.2\n";
139 invalid <<
" iou_threshold: 0.5\n";
140 invalid <<
" max_num_objects: 10\n";
143 bool rejected_unknown_key =
false;
146 }
catch (
const std::runtime_error&) {
147 rejected_unknown_key =
true;
149 assert(rejected_unknown_key);