[tensor_trainer] Add condition to stop model training accepted/tizen/unified/20240408.160707 accepted/tizen/unified/x/20240409.070656
authorhyunil park <hyunil46.park@samsung.com>
Tue, 26 Mar 2024 02:11:52 +0000 (11:11 +0900)
committerjaeyun-jung <39614140+jaeyun-jung@users.noreply.github.com>
Fri, 5 Apr 2024 02:42:09 +0000 (11:42 +0900)
- When a request to stop model training is received,
  if it has already been completed, it is ignored

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
gst/nnstreamer/elements/gsttensor_trainer.c

index ca566a7..87a52ed 100644 (file)
@@ -402,7 +402,8 @@ gst_tensor_trainer_set_property (GObject * object, guint prop_id,
       if (trainer->ready_to_complete_training == g_value_get_boolean (value))
         break;
       trainer->ready_to_complete_training = g_value_get_boolean (value);
-      if (trainer->ready_to_complete_training)
+      if (trainer->ready_to_complete_training == TRUE
+          && trainer->is_training_complete == FALSE)
         gst_tensor_trainer_stop_model_training (trainer);
       break;
     default:
@@ -493,6 +494,8 @@ gst_tensor_trainer_change_state (GstElement * element,
   switch (transition) {
     case GST_STATE_CHANGE_NULL_TO_READY:
       GST_INFO_OBJECT (trainer, "NULL_TO_READY");
+      /* currently not used */
+      trainer->is_training_complete = FALSE;
       break;
 
     case GST_STATE_CHANGE_READY_TO_PAUSED:
@@ -881,7 +884,6 @@ gst_tensor_trainer_wait_for_training_completion (GstTensorTrainer * trainer)
     g_cond_wait (&trainer->training_completion_cond,
         &trainer->training_completion_lock);
   }
-  trainer->is_training_complete = FALSE;
   g_mutex_unlock (&trainer->training_completion_lock);
 
   GST_DEBUG_OBJECT (trainer, "training is completed in sub-plugin[%s]",