Skip to content

Commit 27f89ea

Browse files
committed
fix txt -> json && name of InputLayer read from json
1 parent e3fdc36 commit 27f89ea

2 files changed

Lines changed: 17 additions & 43 deletions

File tree

app/Graph/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,5 @@ add_definitions(-DMODEL_PATH_GOOGLENET_ONNX="${CMAKE_SOURCE_DIR}/docs/jsons/goog
6969
add_definitions(-DMODEL_PATH_DENSENET_ONNX="${CMAKE_SOURCE_DIR}/docs/jsons/densenet121_Opset16_onnx_model.json")
7070
add_definitions(-DMODEL_PATH_RESNET_ONNX="${CMAKE_SOURCE_DIR}/docs/jsons/resnest101e_Opset16_onnx_model.json")
7171
add_definitions(-DMODEL_PATH_YOLO11NET_ONNX="${CMAKE_SOURCE_DIR}/docs/jsons/yolo11x-cls_onnx_model.json")
72-
add_definitions(-DIMAGENET_LABELS="${CMAKE_SOURCE_DIR}/docs/imagenet1000_clsidx_to_labels.txt")
72+
add_definitions(-DIMAGENET_LABELS="${CMAKE_SOURCE_DIR}/docs/imagenet1000_clsidx_to_labels.json")
7373
add_definitions(-DMNIST_PATH="${CMAKE_SOURCE_DIR}/docs/mnist/mnist/test")

app/Graph/build.cpp

Lines changed: 16 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -290,21 +290,24 @@ void build_graph(it_lab_ai::Tensor& input, it_lab_ai::Tensor& output,
290290
const std::string& json_file = json_path;
291291

292292
it_lab_ai::json model_data = it_lab_ai::read_json(json_file);
293+
std::string input_layer_name = "images";
294+
for (const auto& layer_data : model_data) {
295+
std::string layer_type = layer_data["type"];
296+
if (layer_type == "InputLayer") {
297+
if (layer_data.contains("name")) {
298+
input_layer_name = layer_data["name"];
299+
}
300+
break;
301+
}
302+
}
293303

294304
if (comments) std::cout << "Loaded model data from JSON." << std::endl;
295305

296306
auto input_layer = std::make_shared<it_lab_ai::InputLayer>(it_lab_ai::kNchw,
297307
it_lab_ai::kNchw);
298308
input_layer->setName(it_lab_ai::kInput);
299309
layers.push_back(input_layer);
300-
if (json_path == MODEL_PATH_RESNET_ONNX ||
301-
json_path == MODEL_PATH_DENSENET_ONNX) {
302-
name_to_layer["x"] = input_layer;
303-
} else if (json_path == MODEL_PATH_GOOGLENET_ONNX) {
304-
name_to_layer["image_tensor"] = input_layer;
305-
} else {
306-
name_to_layer["images"] = input_layer;
307-
}
310+
name_to_layer[input_layer_name] = input_layer;
308311
int current_id = 0;
309312
input_layer->setID(current_id++);
310313
for (const auto& layer_data : model_data) {
@@ -1060,25 +1063,6 @@ void build_graph(it_lab_ai::Tensor& input, it_lab_ai::Tensor& output,
10601063
name_to_layer[target_name]);
10611064
if (concat_layer) {
10621065
concat_layer->setInputOrder(concat_orders[target_name]);
1063-
/*if (comments) {
1064-
std::cout
1065-
<< "=== ALL INPUTS CONNECTED TO CONCAT: " << target_name
1066-
<< " ===" << std::endl;
1067-
std::cout << "Expected inputs: ";
1068-
for (const auto& inp : concat_connections[target_name]) {
1069-
std::cout << inp << " ";
1070-
}
1071-
std::cout << std::endl;
1072-
1073-
std::cout << "Actual order: ";
1074-
for (size_t i = 0; i < concat_orders[target_name].size();
1075-
++i) {
1076-
std::cout << concat_orders[target_name][i];
1077-
if (i < concat_orders[target_name].size() - 1)
1078-
std::cout << ", ";
1079-
}
1080-
std::cout << std::endl;
1081-
}*/
10821066
}
10831067
}
10841068
}
@@ -1136,26 +1120,16 @@ std::unordered_map<int, std::string> load_class_names(
11361120
const std::string& filename) {
11371121
std::unordered_map<int, std::string> class_names;
11381122
std::ifstream file(filename);
1139-
std::string line;
1140-
11411123
if (!file.is_open()) {
11421124
throw std::runtime_error("Cannot open class names file: " + filename);
11431125
}
1126+
json json_data = json::parse(file);
11441127

1145-
while (std::getline(file, line)) {
1146-
line = std::regex_replace(line, std::regex("^\\s+|\\s+$"), "");
1147-
if (line.empty()) continue;
1148-
1149-
std::regex pattern("(\\d+):\\s*'([^']+)'");
1150-
std::smatch matches;
1151-
1152-
if (std::regex_search(line, matches, pattern)) {
1153-
int class_id = std::stoi(matches[1]);
1154-
std::string class_name = matches[2];
1155-
class_names[class_id] = class_name;
1156-
}
1128+
for (auto& [key, value] : json_data.items()) {
1129+
int class_id = std::stoi(key);
1130+
std::string class_name = value.get<std::string>();
1131+
class_names[class_id] = class_name;
11571132
}
1158-
11591133
return class_names;
11601134
}
11611135

0 commit comments

Comments
 (0)