[fix_ahub] Fix AHub Defect
authorSeoHyungjun <hyungjun.seo@samsung.com>
Thu, 22 Jun 2023 07:31:21 +0000 (16:31 +0900)
committerJijoong Moon <jijoong.moon@samsung.com>
Wed, 28 Jun 2023 01:48:53 +0000 (10:48 +0900)
- Fixed the NNTrainerTrain constructor so that the member variable notiofier is initialized.
- Fixed nntrainer_model_start_training to stop when nntrainer and notifier are null.
- Fixed AUTO_CAUSES_COPY issue.

Signed-off-by: SeoHyungjun <hyungjun.seo@samsung.com>
Applications/YOLO/jni/main.cpp
nnstreamer/tensor_trainer/tensor_trainer_nntrainer.cc
nntrainer/compiler/tflite_opnode.cpp
nntrainer/dataset/dir_data_producers.cpp

index 650cab3..30c5824 100644 (file)
@@ -222,7 +222,7 @@ ModelHandle YOLO() {
     layers.insert(layers.end(), block.begin(), block.end());
   }
 
-  for (auto layer : layers) {
+  for (auto &layer : layers) {
     model->addLayer(layer);
   }
 
index fb8c04d..db7fbf8 100644 (file)
@@ -403,7 +403,7 @@ NNTrainer::InputTensorsInfo::InputTensorsInfo(unsigned int _total_num_samples,
 NNTrainer::InputTensorsInfo::~InputTensorsInfo() {
   g_print("%s:%d:%s: <called>\n", __FILE__, __LINE__, __func__);
 
-  for (auto data : tensor_data) {
+  for (auto &data : tensor_data) {
     for (auto inputs : data.inputs) {
       ml_logd("free: ##I addr:%p", inputs);
       delete inputs;
@@ -476,10 +476,12 @@ static int nntrainer_model_start_training(
   ml_logd("<called>");
   if (!nntrainer) {
     ml_loge("Failed get nntrainer");
+    return -1;
   }
 
   if (!notifier) {
     ml_loge("Failed get notify");
+    return -1;
   }
 
   nntrainer->notifier = notifier;
@@ -597,12 +599,12 @@ NNTrainer::NNTrainerTrain::NNTrainerTrain(
   training_loss(0),
   validation_loss(0),
   num_push_data(0),
-  model_config(_model_config) {
+  model_config(_model_config),
+  notifier(nullptr) {
   ml_logd("<called>");
   getNNStreamerProperties(prop);
   createModel();
   createDataset();
-  // properties = prop;
   ml_logd("<leave>");
 }
 
index 79af20d..d32f9c4 100644 (file)
@@ -57,7 +57,7 @@ void TfOpNode::setLayerNode(const LayerNode &layer) {
    **/
   /// assume that loss layers have single output
   if (layer.getNumOutputConnections() == 1) {
-    for (auto loss : loss_type) {
+    for (auto &loss : loss_type) {
       if (layer.getOutputConnections()[0].find(loss) != std::string::npos) {
         is_output = true;
       }
index 8022fd2..a20ef34 100644 (file)
@@ -115,7 +115,7 @@ DirDataProducer::finalize(const std::vector<TensorDim> &input_dims,
 
   size_t id = 0;
   size_t num_data = 0;
-  for (auto c_name : class_names) {
+  for (auto &c_name : class_names) {
     num_data = 0;
     std::filesystem::directory_iterator itr(c_name);
     while (itr != std::filesystem::end(itr)) {