public ISupervisedOperations SupervisedOperations(EActivationFunction act, EErrorFunction err, EOptimizerFunction opt) { IActivationFunction activationFunction = null; IErrorFunction errorFunction = null; IOptimizerFunction optimizerFunction = null; switch (act) { case EActivationFunction.Sigmoid: activationFunction = new SigmoidFunction(); break; case EActivationFunction.LeakRelu: activationFunction = new LeakReluFunction(); break; } switch (err) { case EErrorFunction.Dense: errorFunction = new DenseErrorFunction(); break; case EErrorFunction.Desired: errorFunction = new DesiredErrorFunction(); break; } switch (opt) { case EOptimizerFunction.SGD: optimizerFunction = new SGDOptimizerFunction(); break; } return(new AnnBasicOperations(activationFunction, errorFunction, optimizerFunction)); }
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); }