public SupervisedNeuron Supervised(int size, int connections, float learning, float momentum, ISupervisedOperations operations) { return(new SupervisedNeuron(size, connections, learning, momentum, operations)); }
public SupervisedNeuron(int nodeSize, int connectionSize, float learningRate, float momentum, ISupervisedOperations operations) { _operations = operations; _layer = new ActivationLayer(nodeSize, connectionSize) { LearningRate = learningRate, Momentum = momentum }; InitializeArrays(nodeSize, connectionSize); _operations.SetLayer(_layer); }
private INeuron BuildSupervised() { ISupervisedOperations opr = null; IActivationFunction act = null; IOptimizerFunction opt = null; switch (activation) { case ActivationFunctionEnum.ArcTANH: act = new ArcTANHFunction(); break; case ActivationFunctionEnum.TANH: act = new TANHFunction(); break; case ActivationFunctionEnum.Binary: act = new BinaryStepFunction(); break; case ActivationFunctionEnum.LeakRelu: act = new LeakReluFunction(); break; case ActivationFunctionEnum.Relu: act = new ReluFunction(); break; case ActivationFunctionEnum.Sigmoid: act = new SigmoidFunction(); break; case ActivationFunctionEnum.Sinusoid: act = new SinusoidFunction(); break; case ActivationFunctionEnum.Nothing: act = null; break; default: throw new InvalidOperationException(); } switch (optmizator) { case EnumOptimizerFunction.Adagrad: opt = new AdagradOptimizerFunction(); break; case EnumOptimizerFunction.Adadelta: opt = new AdadeltaOptimizerFunction(); break; case EnumOptimizerFunction.Adam: opt = new AdamOptimizerFunction(); break; case EnumOptimizerFunction.Nadam: opt = new NadamOptimizerFunction(); break; case EnumOptimizerFunction.RmsProp: opt = new RMSOptimizerFunction(); break; case EnumOptimizerFunction.SGD: opt = new SGDOptimizerFunction(); break; case EnumOptimizerFunction.Momentum: opt = new MomentumOptmizerFunction(); break; default: throw new InvalidOperationException(); } switch (operation) { case ANNOperationsEnum.Activator: opr = new ANNActivatorOperations(); break; case ANNOperationsEnum.SoftMax: opr = new ANNSoftmaxOperations(); break; default: throw new InvalidOperationException(); } opr.SetActivation(act); opr.SetOptimizer(opt); var neuron = new SupervisedNeuron(size, connections, lr, mo, opr); neuron.FullSynapsis(size, connections, std); return(neuron); }