42 lines
910 B
C++
42 lines
910 B
C++
#pragma once
|
|
|
|
#include <string>
|
|
|
|
namespace NeuralNetwork {
|
|
namespace ActivationFunction {
|
|
|
|
/**
|
|
* @author Tomas Cernik (Tom.Cernik@gmail.com)
|
|
* @brief Abstract class of activation function
|
|
*/
|
|
class ActivationFunction {
|
|
public:
|
|
|
|
virtual ~ActivationFunction() {}
|
|
|
|
/**
|
|
* @brief Returns derivation of output
|
|
* @param input is input of function
|
|
* @param output is output of function
|
|
*/
|
|
virtual float derivatedOutput(const float &input,const float &output)=0;
|
|
|
|
/**
|
|
* @brief Returns value of output
|
|
* @param x is input of function
|
|
*/
|
|
virtual float operator()(const float &x)=0;
|
|
|
|
/**
|
|
* @brief Function returns clone of object
|
|
*/
|
|
virtual ActivationFunction* clone() const = 0;
|
|
|
|
/**
|
|
* @brief This is a virtual function for storing Activation function
|
|
* @returns json describing function
|
|
*/
|
|
virtual std::string stringify() const =0;
|
|
};
|
|
}
|
|
} |