From c168208b4992017e6534c22d7e15937582d0b004 Mon Sep 17 00:00:00 2001 From: sosokker Date: Wed, 23 Aug 2023 23:53:06 +0700 Subject: [PATCH] Add header files to include /Update CmakeLists --- include/Activation/Activation.hpp | 16 ++++++++++++++++ include/Layers/Layers.hpp | 22 ++++++++++++++++++++++ src/CMakeLists.txt | 2 ++ 3 files changed, 40 insertions(+) create mode 100644 include/Activation/Activation.hpp create mode 100644 include/Layers/Layers.hpp diff --git a/include/Activation/Activation.hpp b/include/Activation/Activation.hpp new file mode 100644 index 0000000..e51f6f7 --- /dev/null +++ b/include/Activation/Activation.hpp @@ -0,0 +1,16 @@ +#include +#include +#include + +class Activation : public Layer { +public: + Activation(std::function activation, + std::function activation_prime); + + void forward(const Eigen::VectorXd& input) override; + void backward(const Eigen::VectorXd& output_gradient, double learning_rate) override; + +private: + std::function activation; + std::function activation_prime; +}; diff --git a/include/Layers/Layers.hpp b/include/Layers/Layers.hpp new file mode 100644 index 0000000..a5f1239 --- /dev/null +++ b/include/Layers/Layers.hpp @@ -0,0 +1,22 @@ +#ifndef LAYERS_HPP +#define LAYERS_HPP + +#include + +class Layer { +public: + Layer(); + + virtual void forward(const Eigen::VectorXd& input_data); + virtual void backward(const Eigen::VectorXd& output_gradient, double learning_rate); + + const Eigen::VectorXd& getOutput() const; + const Eigen::VectorXd& getInputGradient() const; + +protected: + Eigen::VectorXd input; + Eigen::VectorXd output; + Eigen::VectorXd input_gradient; +}; + +#endif // LAYERS_HPP diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1c1e37d..4cc2614 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,6 +9,8 @@ set(CMAKE_CXX_STANDARD 11) include_directories(include) include_directories(${CMAKE_SOURCE_DIR}/include) include_directories(${CMAKE_SOURCE_DIR}/Eigen) +include_directories(${CMAKE_SOURCE_DIR}/include/Activation) +include_directories(${CMAKE_SOURCE_DIR}/include/Layers) # Add source files to the project file(GLOB_RECURSE SOURCES "src/*.cpp")