29 lines
876 B
C++
29 lines
876 B
C++
#pragma once
|
|
|
|
#include <SimpleJSON/SerializableObject.h>
|
|
#include <SimpleJSON/Factory.h>
|
|
|
|
#include <math.h>
|
|
#include <vector>
|
|
|
|
#include <string>
|
|
|
|
#define NEURAL_NETWORK_REGISTER_BASIS_FUNCTION(name,function) SIMPLEJSON_REGISTER(NeuralNetwork::BasisFunction::Factory,name,function)
|
|
#define NEURAL_NETWORK_REGISTER_BASIS_FUNCTION_FINISH(name,function) SIMPLEJSON_REGISTER_FINISH(NeuralNetwork::BasisFunction::Factory,name,function)
|
|
|
|
namespace NeuralNetwork {
|
|
namespace BasisFunction {
|
|
class BasisFunction : public SimpleJSON::SerializableObject {
|
|
public:
|
|
virtual ~BasisFunction() {}
|
|
virtual float operator()(const std::vector<float>& weights, const std::vector<float>& input) const =0;
|
|
|
|
/**
|
|
* @brief Function returns clone of object
|
|
*/
|
|
virtual std::unique_ptr<BasisFunction> clone() const = 0;
|
|
};
|
|
|
|
typedef SimpleJSON::Factory<BasisFunction> Factory;
|
|
}
|
|
} |