예제 #1
0
        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));
        }
예제 #2
0
파일: Topology.cs 프로젝트: quider/neuron
        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;
        }
예제 #3
0
파일: Topology.cs 프로젝트: dawmaj/neurals
        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;
        }
예제 #4
0
 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);
 }
예제 #5
0
 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));
     }
 }
예제 #6
0
 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));
 }
예제 #7
0
 public new MLPWatchdog Create(int[] layers,IContinuousActivator func)
 {
     return Create(layers,null,func);
 }
예제 #8
0
파일: Neuron.cs 프로젝트: dawmaj/neurals
 public Neuron(IContinuousActivator activator)
 {
     Utility.Verify(activator, x => x != null, "activator");
     Func = activator;
 }
예제 #9
0
        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)));
        }
예제 #10
0
 public new MLPWatchdog Create(int[] layers, IContinuousActivator func)
 {
     return(Create(layers, null, func));
 }
예제 #11
0
        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)));
        }
예제 #12
0
 public MultilayerPerceptron Create(int[] layers, IContinuousActivator func)
 {
     return(Create(layers, null, func));
 }
예제 #13
0
 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));
 }
예제 #14
0
 public MultilayerPerceptron Create(int[] layers,IContinuousActivator func)
 {
     return Create(layers,null,func);
 }
예제 #15
0
파일: Neuron.cs 프로젝트: quider/neuron
 public Neuron(IContinuousActivator activator)
 {
     Utility.Verify(activator,x => x!=null,"activator");
     Func=activator;
 }