protected NetworkStructure GetLayers(int[] layers, Bias bias, IContinuousActivator func) { var l = layers.Length; Link[][] structure = new Link[l][]; FullLayerConnector connector = new FullLayerConnector(); for (var i = 0; i < l - 1; i++) { if (i == 0) { structure[i] = Utility.Generate <Link>(layers[i]).ToArray(); } int j = i + 1; structure[j] = Utility.Generate <Neuron>(layers[j]).ToArray(); connector.Connect(structure[i], (NeuronBase[])structure[j], bias); } SetIdentity(structure); foreach (Link[] layer in structure) { foreach (Link link in layer) { if (link is NeuronBase) { ((NeuronBase)link).Func = func; } } } return(new NetworkStructure(structure, bias)); }
public ConvolutionalTopology(int[] layers,double? bias,LayerConnector[] map,IContinuousActivator func) { Utility.Verify(layers,l => l!=null && l.All(x => x>0),"Invalid layers array"); Utility.Verify(map,m => m.Length==layers.Length-1,"Invalid Map"); Utility.Verify(func,f => f!=null,"Invalid func"); Layers=layers; Bias=bias; Map=map; Func=func; }
public ConvolutionalTopology(int[] layers, double?bias, LayerConnector[] map, IContinuousActivator func) { Utility.Verify(layers, l => l != null && l.All(x => x > 0), "Invalid layers array"); Utility.Verify(map, m => m.Length == layers.Length - 1, "Invalid Map"); Utility.Verify(func, f => f != null, "Invalid func"); Layers = layers; Bias = bias; Map = map; Func = func; }
protected NetworkStructure GetLayers(int[] layers,Bias bias,IContinuousActivator func) { var l=layers.Length; Link[][] structure=new Link[l][]; FullLayerConnector connector=new FullLayerConnector(); for(var i=0;i<l-1;i++) { if(i==0) structure[i]=Utility.Generate<Link>(layers[i]).ToArray(); int j=i+1; structure[j]= Utility.Generate<Neuron>(layers[j]).ToArray(); connector.Connect(structure[i],(NeuronBase[])structure[j],bias); } SetIdentity(structure); foreach(Link[] layer in structure) foreach(Link link in layer) if(link is NeuronBase) ((NeuronBase)link).Func=func; return new NetworkStructure(structure,bias); }
protected IEnumerable <Tuple <Link, int> > GetUnits(IEnumerable <XElement> elements) { foreach (XElement element in elements) { Type type = Type.GetType(Aliases[element.Attribute("type").Value]); Link unit = (Link)Activator.CreateInstance(type); unit.Identity = element.Value; if (unit is NeuronBase) { Type funcType = Type.GetType(Aliases[element.Attribute("func").Value]); IContinuousActivator func = (IContinuousActivator)Activator.CreateInstance(funcType); ((NeuronBase)unit).Func = func; } int l = -1; if (element.Attribute("layer") != null) { l = int.Parse(element.Attribute("layer").Value); } yield return(new Tuple <Link, int>(unit, l)); } }
public new MLPWatchdog Create(int[] layers,double? biasValue,IContinuousActivator func) { Bias bias=biasValue.HasValue? new Bias(biasValue.Value):null; return new MLPWatchdog(GetLayers(layers,bias,func)); }
public new MLPWatchdog Create(int[] layers,IContinuousActivator func) { return Create(layers,null,func); }
public Neuron(IContinuousActivator activator) { Utility.Verify(activator, x => x != null, "activator"); Func = activator; }
public new MLPWatchdog Create(int[] layers, double?biasValue, IContinuousActivator func) { Bias bias = biasValue.HasValue? new Bias(biasValue.Value):null; return(new MLPWatchdog(GetLayers(layers, bias, func))); }
public new MLPWatchdog Create(int[] layers, IContinuousActivator func) { return(Create(layers, null, func)); }
public MultilayerPerceptron Create(int[] layers, double?biasValue, IContinuousActivator func) { Bias bias = biasValue.HasValue? new Bias(biasValue.Value):null; return(new MultilayerPerceptron(GetLayers(layers, bias, func))); }
public MultilayerPerceptron Create(int[] layers, IContinuousActivator func) { return(Create(layers, null, func)); }
public MultilayerPerceptron Create(int[] layers,double? biasValue,IContinuousActivator func) { Bias bias=biasValue.HasValue? new Bias(biasValue.Value):null; return new MultilayerPerceptron(GetLayers(layers,bias,func)); }
public MultilayerPerceptron Create(int[] layers,IContinuousActivator func) { return Create(layers,null,func); }
public Neuron(IContinuousActivator activator) { Utility.Verify(activator,x => x!=null,"activator"); Func=activator; }