add save model api 09/266609/2
authorInki Dae <inki.dae@samsung.com>
Tue, 16 Nov 2021 07:12:07 +0000 (16:12 +0900)
committerInki Dae <inki.dae@samsung.com>
Tue, 16 Nov 2021 10:25:22 +0000 (19:25 +0900)
[Version] : 0.1.0-0
[Issue type] : new feature

This api saves trained model data to a given model file.

Change-Id: Icc79b2138d5c8beecaef684e4cd540ffabd1af30
Signed-off-by: Inki Dae <inki.dae@samsung.com>
packaging/training-engine-nntrainer.spec
src/training_engine_nntrainer.cpp
src/training_engine_nntrainer_private.h

index e0f5ff91806c7198129bd0dc9b609498e2c9f29a..fdffb6654d3a371c86f68af4cd0ae61e6b6005ed 100644 (file)
@@ -1,7 +1,7 @@
 Name:       training-engine-nntrainer
 Summary:    Training engine NNTrainer backend
-Version:    0.0.2
-Release:    1
+Version:    0.1.0
+Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
 ExclusiveArch: %{arm} aarch64
index 090b10a2a8cb5ae1f4aafba889bfe6ac8444ea16..9151f0598f011454c3fe26b688a7b9435c827c02 100644 (file)
@@ -198,6 +198,17 @@ namespace NntrainerImpl
                LOGI("LEAVE");
        }
 
+       int TrainingNntrainer::SaveModel(const training_engine_model *model, const std::string& file_path)
+       {
+                int ret = ml_train_model_save(model->model_handle, file_path.c_str(), ML_TRAIN_MODEL_FORMAT_INI_WITH_BIN);
+                if (ret != ML_ERROR_NONE) {
+                        LOGE("Failed to save trainig data.(%d)", ret);
+                        return TRAINING_ENGINE_ERROR_INVALID_OPERATION;
+                }
+
+                return TRAINING_ENGINE_ERROR_NONE;
+       }
+
        unique_ptr<training_engine_layer> TrainingNntrainer::CreateLayer(training_engine_layer_type_e type)
        {
                LOGI("ENTER");
index 92a8eb9e6ac9db4c57f3ffcdf44ad036ff868f48..ec79e26009bba7b7ea4c223baf2a782f3cf62506 100644 (file)
@@ -54,6 +54,7 @@ namespace NntrainerImpl
                int GetBackendCapacity(training_engine_capacity &capacity) final;
                std::unique_ptr<training_engine_model> CreateModel(std::string model_config_path) final;
                void DestroyModel(const training_engine_model *model) final;
+               int SaveModel(const training_engine_model *model, const std::string& file_path) final;
                std::unique_ptr<training_engine_layer> CreateLayer(training_engine_layer_type_e type) final;
                void DestroyLayer(const training_engine_layer *layer) final;
                int SetLayerProperty(const training_engine_layer *layer, training_engine_layer_property &property) final;