Newer
Older
//
// Created by fluffymoo on 11.6.18.
//
#include <boost/serialization/base_object.hpp>
Neuron* NeuronLinear::get_copy( ){
NeuronLinear* output = new NeuronLinear( this->activation_function_parameters[0], this->activation_function_parameters[1]);
return output;
}
NeuronLinear::NeuronLinear(double a, double b) {
this->n_activation_function_parameters = 2;
this->activation_function_parameters = new double[2];
this->activation_function_parameters[0] = a;
this->activation_function_parameters[1] = b;

Michal Kravcenko
committed
this->edges_in = new std::vector<Connection*>(0);
this->edges_out = new std::vector<Connection*>(0);
void NeuronLinear::activate( ) {
double x = this->potential;
double a = this->activation_function_parameters[0];
double b = this->activation_function_parameters[1];
this->state = b * x + a;

Michal Kravcenko
committed
double NeuronLinear::activation_function_eval_partial_derivative(int param_idx) {
if(param_idx == 0){
return 1.0;
}
else if(param_idx == 1){
double x = this->potential;
return x;
}
return 0.0;

Michal Kravcenko
committed
double NeuronLinear::activation_function_eval_derivative( ) {
double b = this->activation_function_parameters[1];
return b;

Michal Kravcenko
committed
Neuron* NeuronLinear::get_derivative() {
NeuronLinear* output = nullptr;
//derivative according to 'x'
output = new NeuronLinear(this->activation_function_parameters[1], 0.0);
return output;
}
//template<class Archive>
//void NeuronLinear::serialize(Archive & ar, const unsigned int version) {
// ar & boost::serialization::base_object<Neuron>(*this);
//}