@@ -158,6 +158,20 @@ std::vector<std::string> get_non_xai_names(const std::vector<ov::Output<ov::Node
158
158
return outputNames;
159
159
}
160
160
161
+ std::vector<std::string> get_non_xai_names (const std::vector<std::string>& outputs) {
162
+ std::vector<std::string> outputNames;
163
+ outputNames.reserve (std::max (1 , int (outputs.size ()) - 2 ));
164
+ for (const auto & output : outputs) {
165
+ if (output.find (saliency_map_name) != std::string::npos) {
166
+ continue ;
167
+ } if (output.find (feature_vector_name) != std::string::npos) {
168
+ continue ;
169
+ }
170
+ outputNames.push_back (output);
171
+ }
172
+ return outputNames;
173
+ }
174
+
161
175
void append_xai_names (const std::vector<ov::Output<ov::Node>>& outputs, std::vector<std::string>& outputNames) {
162
176
for (const ov::Output<ov::Node>& output : outputs) {
163
177
if (output.get_names ().count (saliency_map_name) > 0 ) {
@@ -167,6 +181,16 @@ void append_xai_names(const std::vector<ov::Output<ov::Node>>& outputs, std::vec
167
181
}
168
182
}
169
183
}
184
+
185
+ void append_xai_names (const std::vector<std::string>& outputs, std::vector<std::string>& outputNames) {
186
+ for (const auto & output : outputs) {
187
+ if (output.find (saliency_map_name) != std::string::npos) {
188
+ outputNames.emplace_back (saliency_map_name);
189
+ } else if (output.find (feature_vector_name) != std::string::npos) {
190
+ outputNames.push_back (feature_vector_name);
191
+ }
192
+ }
193
+ }
170
194
}
171
195
172
196
void ClassificationModel::init_from_config (const ov::AnyMap& top_priority, const ov::AnyMap& mid_priority) {
@@ -192,6 +216,8 @@ ClassificationModel::ClassificationModel(std::shared_ptr<ov::Model>& model, cons
192
216
193
217
ClassificationModel::ClassificationModel (std::shared_ptr<InferenceAdapter>& adapter)
194
218
: ImageModel(adapter) {
219
+ outputNames = get_non_xai_names (adapter->getOutputNames ());
220
+ append_xai_names (adapter->getOutputNames (), outputNames);
195
221
init_from_config (adapter->getModelConfig (), ov::AnyMap{});
196
222
}
197
223
@@ -408,7 +434,7 @@ void ClassificationModel::prepareInputsOutputs(std::shared_ptr<ov::Model>& model
408
434
inputShape[ov::layout::height_idx (inputLayout)]},
409
435
pad_value,
410
436
reverse_input_channels,
411
- {} ,
437
+ mean_values ,
412
438
scale_values);
413
439
414
440
ov::preprocess::PrePostProcessor ppp = ov::preprocess::PrePostProcessor (model);
0 commit comments