From 0ffba70ece7c498f1624a188cc62475c7fa6f443 Mon Sep 17 00:00:00 2001
From: Martin Beseda <martin.beseda@vsb.cz>
Date: Fri, 18 Jan 2019 16:38:07 +0100
Subject: [PATCH] NEW: New example added - simple fitting of f(x)=x^2 using
 FFN.

---
 src/examples/CMakeLists.txt |  9 +++++++++
 src/examples/x2_fitting.cpp | 28 ++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+)

diff --git a/src/examples/CMakeLists.txt b/src/examples/CMakeLists.txt
index 141fcb45..36be7dde 100644
--- a/src/examples/CMakeLists.txt
+++ b/src/examples/CMakeLists.txt
@@ -32,6 +32,8 @@ target_link_libraries(test_harmonic_oscilator PUBLIC lib4neuro)
 add_executable(simulator simulator.cpp)
 target_link_libraries(simulator PUBLIC lib4neuro)
 
+add_executable(x2_fitting x2_fitting.cpp)
+target_link_libraries(x2_fitting PUBLIC lib4neuro)
 
 set_target_properties(
     test_cases
@@ -44,6 +46,7 @@ set_target_properties(
     test_harmonic_oscilator
     seminar
     simulator
+    x2_fitting
 
     PROPERTIES
         ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib/"
@@ -110,4 +113,10 @@ target_include_directories(
         simulator
         PRIVATE
         ${ROOT_DIR}/include
+)
+
+target_include_directories(
+        x2_fitting
+        PRIVATE
+        ${ROOT_DIR}/include
 )
\ No newline at end of file
diff --git a/src/examples/x2_fitting.cpp b/src/examples/x2_fitting.cpp
index eb90e39b..739aefb5 100644
--- a/src/examples/x2_fitting.cpp
+++ b/src/examples/x2_fitting.cpp
@@ -2,3 +2,31 @@
 // Created by martin on 17.1.19.
 //
 
+#include <iostream>
+
+#include "4neuro.h"
+
+int main() {
+
+    l4n::CSVReader reader("/home/martin/4Neuro/src/examples/x2_data.txt", "\t", true);
+    reader.read();
+
+    std::vector<unsigned int> input_ind = {0};
+    std::vector<unsigned int> output_ind = {1};
+    l4n::DataSet ds = reader.get_data_set(&input_ind, &output_ind);
+
+    std::vector<unsigned int> neuron_numbers_in_layers = {1, 15, 1};
+    std::vector<l4n::NEURON_TYPE> hidden_type_v = {l4n::NEURON_TYPE::LOGISTIC};
+    l4n::FullyConnectedFFN net(&neuron_numbers_in_layers, &hidden_type_v);
+
+    l4n::MSE mse(&net, &ds);
+
+    l4n::GradientDescent gs(1e-5, 20, 200);
+
+    net.randomize_parameters();
+    gs.optimize(mse);
+
+    mse.eval_on_data_set(&ds);
+
+    return 0;
+}
\ No newline at end of file
-- 
GitLab