public override void ConnectTo(ILayerSender sender) { foreach (var(perceptronReceiver, perceptronSender) in Receivers.ZipIteration(sender.Senders)) { perceptronReceiver.ConnectTo(perceptronSender); } }
public Layer GetLayer(ILayerSender sendersLayer) { List <IDataSender> senders = sendersLayer.Senders.ToList(); Layer l = new Layer(perceptrons.Select(x => x.GetPerceptron(senders)).ToList()); l.Sender = sendersLayer; return(l); }
/// <summary> /// instancie un nouveau Network a partir de layer existant /// </summary> /// <param name="input"></param> /// <param name="hiddens"></param> /// <param name="output"></param> /// <param name="layerStart"></param> public Network(Layer input, List <Layer> hiddens, Layer output, ILayerSender layerStart) { starts = layerStart; this.input = input; this.output = output; this.hiddens = hiddens; ReverseHiddens = hiddens.AsEnumerable().Reverse().ToList(); }
/// <summary> /// instantie un nouveau network a l'aide de ses dimension ainsi que du layer qui le précéde /// </summary> /// <param name="nbDataInput"></param> /// <param name="nbDataOutput"></param> /// <param name="nbHiddenLayer"></param> /// <param name="layerStart"></param> /// <param name="isLast"></param> public Network(int nbDataInput, int nbDataOutput, int nbHiddenLayer, ILayerSender layerStart, bool isLast = true) { input = new Layer(nbDataInput, newPerceptronLayer); output = new Layer(nbDataOutput, isLast ? newPerceptronFinal : newPerceptronLayer); starts = layerStart; GenerateHiddenLayers(nbDataInput, nbDataOutput, nbHiddenLayer); GenerateConnexion(); ReverseHiddens = hiddens.AsEnumerable().Reverse().ToList(); }
public virtual void ConnectTo(ILayerSender sender) { Sender = sender; if (Sender == null) { return; } foreach (var perceptronReceiver in Receivers) { foreach (var perceptronSender in sender.Senders) { perceptronReceiver.ConnectTo(perceptronSender); } } }
public Network GetNetwork(ILayerSender layerPre) { Layer inputLayer = input.GetLayer(layerPre); List <Layer> hiddensLayer = new List <Layer>(); Layer current = inputLayer; foreach (var hidden in hiddens) { current = hidden.GetLayer(current); hiddensLayer.Add(current); } Layer outputLayer = output.GetLayer(current); return(new Network(inputLayer, hiddensLayer, outputLayer, layerPre)); }