getter for activation and basis function of neuron added

This commit is contained in:
2016-02-07 21:56:29 +01:00
parent 59125e57f9
commit 5bd520cfed

View File

@@ -82,7 +82,16 @@ namespace NeuralNetwork
* @brief Function returns clone of object
*/
virtual NeuronInterface* clone() const = 0;
protected:
/*
* @brief getter for basis function of neuron
*/
virtual BasisFunction::BasisFunction& getBasisFunction() =0;
/*
* @brief getter for activation function of neuron
*/
virtual ActivationFunction::ActivationFunction& getActivationFunction() =0;
};
/**
@@ -192,6 +201,14 @@ namespace NeuralNetwork
return n;
}
virtual BasisFunction::BasisFunction& getBasisFunction() override {
return *basis;
}
virtual ActivationFunction::ActivationFunction& getActivationFunction() override {
return *activation;
}
protected:
BasisFunction::BasisFunction *basis;
@@ -206,6 +223,19 @@ namespace NeuralNetwork
class BiasNeuron: public NeuronInterface {
public:
class usageException : public std::exception {
public:
usageException(const std::string &text_):text(text_) {
}
virtual const char* what() const noexcept override {
return text.c_str();
}
protected:
std::string text;
};
virtual float getBias() const override { return 0; };
virtual float getWeight(const NeuronInterface&) const override { return 0; }
@@ -228,10 +258,32 @@ namespace NeuralNetwork
}
virtual BiasNeuron* clone() const { return new BiasNeuron(); }
virtual BasisFunction::BasisFunction& getBasisFunction() override {
throw usageException("basis function");
}
virtual ActivationFunction::ActivationFunction& getActivationFunction() override {
throw usageException("activation function");
}
};
class InputNeuron: public NeuronInterface {
public:
class usageException : public std::exception {
public:
usageException(const std::string &text_):text(text_) {
}
virtual const char* what() const noexcept override {
return text.c_str();
}
protected:
std::string text;
};
InputNeuron(long unsigned int _id): id_(_id) {
}
@@ -258,6 +310,14 @@ namespace NeuralNetwork
}
virtual InputNeuron* clone() const { return new InputNeuron(id_); }
virtual BasisFunction::BasisFunction& getBasisFunction() override {
throw usageException("basis function");
}
virtual ActivationFunction::ActivationFunction& getActivationFunction() override {
throw usageException("activation function");
}
protected:
long unsigned int id_;
};