From 93e188263cf37245fd1a256ece5f538ca7710ca3 Mon Sep 17 00:00:00 2001 From: hyeonseok lee Date: Mon, 18 Jul 2022 11:43:09 +0900 Subject: [PATCH] [trivial] fix ahub issue - Added try catch statement - Delete structually dead code Signed-off-by: hyeonseok lee --- Applications/VGG/jni/main.cpp | 59 +++++++++++++++---- nntrainer/layers/common_properties.cpp | 4 +- .../unittest_layers_zoneout_lstmcell.cpp | 36 +++++++++++ 3 files changed, 85 insertions(+), 14 deletions(-) create mode 100644 test/unittest/layers/unittest_layers_zoneout_lstmcell.cpp diff --git a/Applications/VGG/jni/main.cpp b/Applications/VGG/jni/main.cpp index 7b8e2f1f..b57f2106 100644 --- a/Applications/VGG/jni/main.cpp +++ b/Applications/VGG/jni/main.cpp @@ -106,43 +106,80 @@ int main(int argc, char *argv[]) { 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()); + std::unique_ptr dataset_train; + try { + dataset_train = ml::train::createDataset( + ml::train::DatasetType::GENERATOR, trainData_cb, train_user_data.get()); + } catch (const std::exception &e) { + std::cerr << "Error during create train dataset: " << e.what() << std::endl; + return 1; + } + + std::unique_ptr dataset_valid; + try { + dataset_valid = ml::train::createDataset( + ml::train::DatasetType::GENERATOR, validData_cb, valid_user_data.get()); + } catch (const std::exception &e) { + std::cerr << "Error during create valid dataset: " << e.what() << std::endl; + return 1; + } /** * @brief Neural Network Create & Initialization */ - ModelHandle model = ml::train::createModel(ml::train::ModelType::NEURAL_NET); + ModelHandle model; + try { + model = ml::train::createModel(ml::train::ModelType::NEURAL_NET); + } catch (const std::exception &e) { + std::cerr << "Error during create model: " << e.what() << std::endl; + return 1; + } try { model->load(config, ml::train::ModelFormat::MODEL_FORMAT_INI); - } catch (...) { - std::cerr << "Error during loadFromConfig" << std::endl; + } catch (const std::exception &e) { + std::cerr << "Error during loadFromConfig: " << e.what() << std::endl; return 1; } try { model->compile(); + } catch (const std::exception &e) { + std::cerr << "Error during compile: " << e.what() << std::endl; + return 1; + } + + try { model->initialize(); - } catch (...) { - std::cerr << "Error during init" << std::endl; + } catch (const std::exception &e) { + std::cerr << "Error during ininitialize: " << e.what() << std::endl; return 1; } try { model->setDataset(ml::train::DatasetModeType::MODE_TRAIN, std::move(dataset_train)); + } catch (const std::exception &e) { + std::cerr << "Error during set train dataset: " << e.what() << std::endl; + return 1; + } + + try { model->setDataset(ml::train::DatasetModeType::MODE_VALID, std::move(dataset_valid)); + } catch (const std::exception &e) { + std::cerr << "Error during set valid dataset: " << e.what() << std::endl; + return 1; + } + + try { model->train(); training_loss = model->getTrainingLoss(); validation_loss = model->getValidationLoss(); last_batch_loss = model->getLoss(); - } catch (...) { - std::cerr << "Error during train" << std::endl; + } catch (const std::exception &e) { + std::cerr << "Error during train: " << e.what() << std::endl; return 1; } diff --git a/nntrainer/layers/common_properties.cpp b/nntrainer/layers/common_properties.cpp index ab87da22..a9fb8703 100644 --- a/nntrainer/layers/common_properties.cpp +++ b/nntrainer/layers/common_properties.cpp @@ -189,10 +189,8 @@ Padding2D::compute(const TensorDim &input, const TensorDim &kernel, case 4: return {paddings[0], paddings[1], paddings[2], paddings[3]}; default: - throw std::logic_error("[padding] should not reach here"); + throw std::logic_error("[Padding2D] should not reach here"); } - - throw std::logic_error("[padding] should not reach here"); } bool Padding1D::isValid(const std::string &v) const { diff --git a/test/unittest/layers/unittest_layers_zoneout_lstmcell.cpp b/test/unittest/layers/unittest_layers_zoneout_lstmcell.cpp new file mode 100644 index 00000000..c7f8beb2 --- /dev/null +++ b/test/unittest/layers/unittest_layers_zoneout_lstmcell.cpp @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: Apache-2.0 +/** + * Copyright (C) 2022 Hyeonseok Lee + * + * @file unittest_layers_zoneout_lstmcell.cpp + * @date 14 June 2022 + * @brief ZoneoutLSTMCell Layer Test + * @see https://github.com/nnstreamer/nntrainer + * @author Hyeonseok Lee + * @bug No known bugs except for NYI items + */ +#include + +#include + +#include +#include + +auto semantic_zoneout_lstmcell = LayerSemanticsParamType( + nntrainer::createLayer, + nntrainer::LSTMCellLayer::type, + {"unit=1", "hidden_state_zoneout_rate=0.1", "cell_state_zoneout_rate=0.0"}, 0, + false, 3); + +INSTANTIATE_TEST_CASE_P(LSTMCell, LayerSemantics, + ::testing::Values(semantic_zoneout_lstmcell)); + +auto zoneout_lstmcell_single_step = LayerGoldenTestParamType( + nntrainer::createLayer, + {"unit=5", "integrate_bias=true", "hidden_state_zoneout_rate=0.1", + "cell_state_zoneout_rate=0.0"}, + "3:1:1:7,3:1:1:5,3:1:1:5", "zoneout_lstmcell_single_step.nnlayergolden", + LayerGoldenTestParamOptions::DEFAULT); + +INSTANTIATE_TEST_CASE_P(LSTMCell, LayerGoldenTest, + ::testing::Values(zoneout_lstmcell_single_step)); -- 2.34.1