posibility to modify activation/basis function

This commit is contained in:
2016-02-23 23:11:22 +01:00
parent d9614b5796
commit bf4387a98f

View File

@@ -110,6 +110,10 @@ namespace NeuralNetwork
*/
virtual ActivationFunction::ActivationFunction& getActivationFunction() =0;
virtual void setBasisFunction(const BasisFunction::BasisFunction& basisFunction) =0;
virtual void setActivationFunction(const ActivationFunction::ActivationFunction &activationFunction) =0;
/**
* @brief id is identificator if neuron
*/
@@ -167,6 +171,17 @@ namespace NeuralNetwork
virtual ActivationFunction::ActivationFunction& getActivationFunction() override {
return *activation;
}
virtual void setBasisFunction(const BasisFunction::BasisFunction& basisFunction) override {
delete basis;
basis=basisFunction.clone();
}
virtual void setActivationFunction(const ActivationFunction::ActivationFunction &activationFunction) override {
delete activation;
activation=activationFunction.clone();
}
protected:
BasisFunction::BasisFunction *basis;
@@ -202,6 +217,15 @@ namespace NeuralNetwork
throw usageException("activation function");
}
virtual void setBasisFunction(const BasisFunction::BasisFunction&) override {
throw usageException("basis function");
}
virtual void setActivationFunction(const ActivationFunction::ActivationFunction &) override {
throw usageException("activation function");
}
};
class InputNeuron: public NeuronInterface {
@@ -236,5 +260,14 @@ namespace NeuralNetwork
virtual ActivationFunction::ActivationFunction& getActivationFunction() override {
throw usageException("activation function");
}
virtual void setBasisFunction(const BasisFunction::BasisFunction&) override {
throw usageException("basis function");
}
virtual void setActivationFunction(const ActivationFunction::ActivationFunction &) override {
throw usageException("activation function");
}
};
}