diff --git a/src/Neuron/Neuron.cpp b/src/Neuron/Neuron.cpp index fc7dc78db4bda1326fce329aab8add4005a54da5..15664cd953bd38f298d22f194d554b0eff82086c 100644 --- a/src/Neuron/Neuron.cpp +++ b/src/Neuron/Neuron.cpp @@ -4,8 +4,3 @@ Neuron::~Neuron() { } -//template<class Archive> -//void Neuron::serialize(Archive & ar, const unsigned int version) { -// ar << this->potential; -// ar << this->state; -//} \ No newline at end of file diff --git a/src/Neuron/Neuron.h b/src/Neuron/Neuron.h index 6e098a85858a5e7ef54fc4a497fb5c39c51b37ec..bcc85cf41f70cbe0220e03d2345e25b6e1dccfa6 100644 --- a/src/Neuron/Neuron.h +++ b/src/Neuron/Neuron.h @@ -19,20 +19,11 @@ class IDifferentiable; * Abstract class representing a general neuron */ class Neuron { +private: friend class boost::serialization::access; -protected: - template<class Archive> - void serialize(Archive & ar, const unsigned int version){ - //TODO separate implementation to Neuron.cpp! -// ar & this->potential; -// ar & this->state; -// -// for(unsigned short int i = 0; i < this->n_activation_function_parameters; i++) { -// ar & this->activation_function_parameters[i]; -// } - }; + void serialize(Archive & ar, const unsigned int version){}; public: @@ -47,6 +38,7 @@ public: * Performs the activation function and returns the result */ virtual double activate( double x, double b ) = 0; + }; /* end of Neuron class */ diff --git a/src/Neuron/NeuronBinary.cpp b/src/Neuron/NeuronBinary.cpp index 4ccb178bcf0d0c81945c83c16f71dfd5a207d935..48ada48fc2b562e90abccad7941a7ceee13db712 100644 --- a/src/Neuron/NeuronBinary.cpp +++ b/src/Neuron/NeuronBinary.cpp @@ -4,9 +4,7 @@ #include "NeuronBinary.h" -NeuronBinary::NeuronBinary( ) { - -} +NeuronBinary::NeuronBinary( ) {} double NeuronBinary::activate( double x, double b ) { diff --git a/src/Neuron/NeuronBinary.h b/src/Neuron/NeuronBinary.h index 9e2d116160ad0b97ba8230f4333e4e907523d303..e9857a7ab3dd8d16bd36aabe32e68210f939e67a 100644 --- a/src/Neuron/NeuronBinary.h +++ b/src/Neuron/NeuronBinary.h @@ -16,12 +16,11 @@ * Binary neuron class - uses unit-step as the activation function */ class NeuronBinary:public Neuron { +private: friend class boost::serialization::access; -protected: template<class Archive> void serialize(Archive & ar, const unsigned int version){ - //TODO separate implementation to NeuronLogistic.cpp! ar & boost::serialization::base_object<Neuron>(*this); }; diff --git a/src/Neuron/NeuronConstant.cpp b/src/Neuron/NeuronConstant.cpp index a09fe8c561453229b0b3129cac431b8e3dc883c1..1b349c2f913dfe1ea3c09dcf5765fe28254cd555 100644 --- a/src/Neuron/NeuronConstant.cpp +++ b/src/Neuron/NeuronConstant.cpp @@ -8,9 +8,7 @@ #include "NeuronConstant.h" NeuronConstant::NeuronConstant( double c ) { - this->p = c; - } double NeuronConstant::activate( double x, double b ) { diff --git a/src/Neuron/NeuronConstant.h b/src/Neuron/NeuronConstant.h index f87d5a608d18671661b9be6b156aa7fd5032cdca..2c7091dc99e1ddd5f161f6b45a80fc5c85e398eb 100644 --- a/src/Neuron/NeuronConstant.h +++ b/src/Neuron/NeuronConstant.h @@ -12,13 +12,16 @@ #include "Neuron.h" class NeuronConstant: public Neuron, public IDifferentiable { +private: friend class boost::serialization::access; -protected: + double p = 0.0; + template<class Archive> void serialize(Archive & ar, const unsigned int version){ - //TODO separate implementation to NeuronLinear.cpp! ar & boost::serialization::base_object<Neuron>(*this); + + ar & this->p; }; public: @@ -54,7 +57,6 @@ public: * @return */ Neuron* get_derivative( ) override; -private: - double p = 0.0; }; + #endif //INC_4NEURO_NEURONCONSTANT_H diff --git a/src/Neuron/NeuronLinear.cpp b/src/Neuron/NeuronLinear.cpp index 71ad80fd42825abd1be54d6433653c4f4a6ba9ce..afb73c6ac102d5b8e725cbceac2c3c38075cc887 100644 --- a/src/Neuron/NeuronLinear.cpp +++ b/src/Neuron/NeuronLinear.cpp @@ -6,10 +6,7 @@ -NeuronLinear::NeuronLinear( ) { - - -} +NeuronLinear::NeuronLinear( ) {} double NeuronLinear::activate( double x, double b ) { diff --git a/src/Neuron/NeuronLinear.h b/src/Neuron/NeuronLinear.h index bd5d8c42f26bce108eba26c39fedd690d9e58c1a..56d9793282a5d651bc93622af5d02aac72dcc893 100644 --- a/src/Neuron/NeuronLinear.h +++ b/src/Neuron/NeuronLinear.h @@ -20,12 +20,11 @@ * 'x' being the neuron's potential */ class NeuronLinear:public Neuron, public IDifferentiable { +private: friend class boost::serialization::access; -protected: template<class Archive> void serialize(Archive & ar, const unsigned int version){ - //TODO separate implementation to NeuronLinear.cpp! ar & boost::serialization::base_object<Neuron>(*this); }; diff --git a/src/Neuron/NeuronLogistic.cpp b/src/Neuron/NeuronLogistic.cpp index 7d8075bc3298fb8fabe387e99e80479d28f6e381..6ca3f80006e07752dd6e85392f45941159b8c74d 100644 --- a/src/Neuron/NeuronLogistic.cpp +++ b/src/Neuron/NeuronLogistic.cpp @@ -5,9 +5,7 @@ #include "NeuronLogistic.h" -NeuronLogistic_d2::NeuronLogistic_d2( ) { - -} +NeuronLogistic_d2::NeuronLogistic_d2( ) {} double NeuronLogistic_d2::activate( double x, double b ) { //(e^(b + x) (e^b - e^x))/(e^b + e^x)^3 @@ -40,9 +38,7 @@ NeuronLogistic* NeuronLogistic_d2::get_derivative() { return nullptr; } -NeuronLogistic_d1::NeuronLogistic_d1( ) { - -} +NeuronLogistic_d1::NeuronLogistic_d1( ) {} double NeuronLogistic_d1::activate( double x, double b ) { @@ -80,9 +76,7 @@ NeuronLogistic* NeuronLogistic_d1::get_derivative( ) { return output; } -NeuronLogistic::NeuronLogistic( ) { - -} +NeuronLogistic::NeuronLogistic( ) {} double NeuronLogistic::activate( double x, double b ) { //(1 + e^(-x + b))^(-1) diff --git a/src/Neuron/NeuronLogistic.h b/src/Neuron/NeuronLogistic.h index 9eaa3e2bda01667c983f022aad3a35323f2e33fb..c5ce9d9e34aa330f9368f10aefcced0e803e880e 100644 --- a/src/Neuron/NeuronLogistic.h +++ b/src/Neuron/NeuronLogistic.h @@ -59,13 +59,15 @@ public: class NeuronLogistic_d1:public NeuronLogistic { +private: friend class boost::serialization::access; -protected: + template<class Archive> void serialize(Archive & ar, const unsigned int version){ - //TODO separate implementation to NeuronLogistic_d1.cpp! + //TODO separate implementation to Neuronogistic_d1.cpp! ar & boost::serialization::base_object<Neuron>(*this); }; + public: /** @@ -106,13 +108,15 @@ public: class NeuronLogistic_d2:public NeuronLogistic_d1 { +private: friend class boost::serialization::access; -protected: + template<class Archive> void serialize(Archive & ar, const unsigned int version){ //TODO separate implementation to NeuronLogistic_d1.cpp! ar & boost::serialization::base_object<Neuron>(*this); }; + public: /**