[MachineLearning.Train] Add SetProperty method to Optimizer class
authorHyunil <hyunil46.park@samsung.com>
Thu, 16 Jun 2022 00:44:36 +0000 (09:44 +0900)
committerJijoong Moon <jijoong.moon@samsung.com>
Tue, 23 Aug 2022 05:50:26 +0000 (14:50 +0900)
- Add SetProperty(params string[] property)
- Add ml_train_optimizer_set_property_with_single_param() to interop

Signed-off-by: Hyunil <hyunil46.park@samsung.com>
src/Tizen.MachineLearning.Train/Interop/Interop.Optimizer.cs [moved from src/Tizen.MachineLearning.Train/Interop/Interop.optimizer.cs with 80% similarity]
src/Tizen.MachineLearning.Train/Tizen.MachineLearning.Train/Optimizer.cs

@@ -29,5 +29,9 @@ internal static partial class Interop
         /* int ml_train_optimizer_destroy(ml_train_optimizer_h optimizer) */
         [DllImport(Libraries.Nntrainer, EntryPoint = "ml_train_optimizer_destroy")]
         public static extern NNTrainerError Destroy(IntPtr optimizerHandle);
+
+        /*int ml_train_optimizer_set_property_with_single_param(ml_train_optimizer_h optimizer, const char *single_param) */
+        [DllImport(Libraries.Nntrainer, EntryPoint = "ml_train_optimizer_set_property_with_single_param")]
+        public static extern NNTrainerError SetProperty(IntPtr optimizerHandle, string propertyParams);
     }
 }
\ No newline at end of file
index 9c9c789..dab234d 100644 (file)
@@ -91,6 +91,27 @@ namespace Tizen.MachineLearning.Train
             disposed = true;
         }
 
+        /// <summary>
+        /// Sets the neural network optimizer property
+        /// </summary>
+        /// <remarks>
+        /// Use this function to set neural network optimizer property.
+        /// </remarks>
+        /// <param name="property">property for optimizer.</param>
+        /// <since_tizen> 10 </since_tizen>
+        public void SetProperty(params string[] property)
+        {
+            string propertyParams = null;
+
+            if (property.Length > 0) {
+                propertyParams = string.Join("|", property);
+                Log.Info(NNTrainer.Tag, "Set property:"+ propertyParams);
+            }
+
+            NNTrainerError ret = Interop.Optimizer.SetProperty(handle, propertyParams);
+            NNTrainer.CheckException(ret, "Failed to set property");
+        }
+
         internal IntPtr GetHandle()
         {
             return handle;