From a6aca9d56515d5fc63f0bf4f214a4838ea35ffc4 Mon Sep 17 00:00:00 2001 From: Seungbaek Hong Date: Tue, 21 Mar 2023 18:37:12 +0900 Subject: [PATCH] [WIP][ahub] fix ahub issue fix svace issue of ahub - add try&catch on yolo example - add initialization of Exporter class Signed-off-by: Seungbaek Hong --- Applications/YOLO/jni/main.cpp | 69 +++++++++++++++++++++++---------------- nntrainer/utils/node_exporter.cpp | 7 +++- 2 files changed, 47 insertions(+), 29 deletions(-) diff --git a/Applications/YOLO/jni/main.cpp b/Applications/YOLO/jni/main.cpp index 00da4f6..0f325b3 100644 --- a/Applications/YOLO/jni/main.cpp +++ b/Applications/YOLO/jni/main.cpp @@ -216,36 +216,49 @@ int main(int argc, char *argv[]) { // create train and validation data std::array user_datas; - user_datas = createFakeDataGenerator(batch_size, data_size, data_split); + try { + user_datas = createFakeDataGenerator(batch_size, data_size, data_split); + } catch (const std::exception &e) { + std::cerr << "uncaught error while creating data generator! details: " + << e.what() << std::endl; + return EXIT_FAILURE; + } auto &[train_user_data, valid_user_data] = user_datas; - auto dataset_train = ml::train::createDataset( - ml::train::DatasetType::GENERATOR, trainData_cb, train_user_data.get()); - auto dataset_valid = ml::train::createDataset( - ml::train::DatasetType::GENERATOR, validData_cb, valid_user_data.get()); - - // create YOLO v2 model - ModelHandle model = YOLO(); - model->setProperty({withKey("batch_size", batch_size), - withKey("epochs", epochs), - withKey("save_path", "yolov2.bin")}); - - // create optimizer - auto optimizer = ml::train::createOptimizer("adam", {"learning_rate=0.001"}); - model->setOptimizer(std::move(optimizer)); - - // compile and initialize model - model->compile(); - model->initialize(); - - model->setDataset(ml::train::DatasetModeType::MODE_TRAIN, - std::move(dataset_train)); - model->setDataset(ml::train::DatasetModeType::MODE_VALID, - std::move(dataset_valid)); - - model->summarize(std::cout, ML_TRAIN_SUMMARY_MODEL); - - model->train(); + try { + auto dataset_train = ml::train::createDataset( + ml::train::DatasetType::GENERATOR, trainData_cb, train_user_data.get()); + auto dataset_valid = ml::train::createDataset( + ml::train::DatasetType::GENERATOR, validData_cb, valid_user_data.get()); + + // create YOLO v2 model + ModelHandle model = YOLO(); + model->setProperty({withKey("batch_size", batch_size), + withKey("epochs", epochs), + withKey("save_path", "yolov2.bin")}); + + // create optimizer + auto optimizer = + ml::train::createOptimizer("adam", {"learning_rate=0.001"}); + model->setOptimizer(std::move(optimizer)); + + // compile and initialize model + model->compile(); + model->initialize(); + + model->setDataset(ml::train::DatasetModeType::MODE_TRAIN, + std::move(dataset_train)); + model->setDataset(ml::train::DatasetModeType::MODE_VALID, + std::move(dataset_valid)); + + model->summarize(std::cout, ML_TRAIN_SUMMARY_MODEL); + + model->train(); + } catch (const std::exception &e) { + std::cerr << "uncaught error while running! details: " << e.what() + << std::endl; + return EXIT_FAILURE; + } // print end time and duration auto end = std::chrono::system_clock::now(); diff --git a/nntrainer/utils/node_exporter.cpp b/nntrainer/utils/node_exporter.cpp index fe5c8ff..007f218 100644 --- a/nntrainer/utils/node_exporter.cpp +++ b/nntrainer/utils/node_exporter.cpp @@ -43,7 +43,12 @@ constexpr const unsigned int POOLING2D_DIM = 2; * @brief Construct a new Exporter object * */ -Exporter::Exporter() : stored_result(nullptr), is_exported(false) {} +Exporter::Exporter() : stored_result(nullptr), is_exported(false) { +#ifdef ENABLE_TFLITE_INTERPRETER + tf_node = nullptr; + fbb = nullptr; +#endif +} #ifdef ENABLE_TFLITE_INTERPRETER /** -- 2.7.4