[ini/save] Save Optimizer Section
authorJihoon Lee <jhoon.it.lee@samsung.com>
Wed, 1 Sep 2021 06:24:15 +0000 (15:24 +0900)
committerJijoong Moon <jijoong.moon@samsung.com>
Tue, 7 Sep 2021 11:27:12 +0000 (20:27 +0900)
This patch saves optimizer section to ini.

**Self evaluation:**
1. Build test: [X]Passed [ ]Failed [ ]Skipped
2. Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee <jhoon.it.lee@samsung.com>
nntrainer/models/neuralnet.cpp
nntrainer/optimizers/adam.h
nntrainer/utils/base_properties.cpp
nntrainer/utils/ini_wrapper.h

index d4e4b728769874aad5aff5dabf327decde879f20..a31901d13c4bcd17becfba03a9bd5f0f897ab9e4 100644 (file)
@@ -423,7 +423,10 @@ void NeuralNetwork::saveModelIni(const std::string &file_path) {
   IniSection model_section = IniSection::FromExportable("model", *this);
   model_section.setEntry("type", "NeuralNetwork");
 
-  IniWrapper wrapper("model_saver", {model_section});
+  IniSection optimizer_section = IniSection::FromExportable("optimizer", *opt);
+  optimizer_section.setEntry("type", opt->getType());
+
+  IniWrapper wrapper("model_saver", {model_section, optimizer_section});
   wrapper.save_ini(file_path);
 
   IniGraphInterpreter interpreter;
index 0fff611218fbca39eab44a67bea8e193493262b1..e0c3cd78c4783fa4eac80a74cdf9c9f3ca8d8cde 100644 (file)
@@ -101,7 +101,7 @@ public:
   /**
    * @copydoc Optimizer::setProperty(const std::vector<std::string> &values)
    */
-  virtual void setProperty(const std::vector<std::string> &values) override;
+  void setProperty(const std::vector<std::string> &values) override;
 
 private:
   std::tuple<PropsB1, PropsB2, PropsEpsilon> adam_props;
index c9f679aa5a1a84265490600dd8975bdefb1fc367..644b273753b7b677b422a3d5ae13587205b11cbf 100644 (file)
@@ -88,7 +88,9 @@ float str_converter<float_prop_tag, float>::from_string(
 template <>
 std::string
 str_converter<double_prop_tag, double>::to_string(const double &value) {
-  return std::to_string(value);
+  std::ostringstream ss;
+  ss << value;
+  return ss.str();
 }
 
 template <>
index e4557f666f50a4c69e91081b0896c63464f91536..3637d7dcfb9381182cfecf186b0afe7df954480a 100644 (file)
@@ -77,11 +77,13 @@ public:
   IniSection() : section_name(""), entry{} {};
 
   /**
-   * @brief Construct a new Ini Section object which implements object::exportTo
+   * @brief Construct a new Ini Section object from which implements
+   * object::exportTo
    *
    * @tparam Exportable object with member object::exportTo
    * @param section_name section name
    * @param exportable exportable object
+   * @return IniSection created section
    */
   template <typename Exportable>
   static IniSection FromExportable(const std::string &section_name,
@@ -93,7 +95,7 @@ public:
       e.getResult<ExportMethods::METHOD_STRINGVECTOR>();
 
     if (!key_val_pairs) {
-      throw std::invalid_argument("returend pairs are nullptr!");
+      throw std::invalid_argument("returned pairs are nullptr!");
     }
 
     for (const auto &pair : *key_val_pairs) {