public void TestDeserialize() { var path = "D:\\3.xml"; var layOutput = (LayerOutput)LayerOutput.Deserialize(path); Assert.AreEqual(layOutput.Perceptrons[0].WeightArray.Length, 5); }
/// <summary> /// </summary> /// <param name="nm">Режима работы сети (Train, Test, Demo).</param> /// <param name="LayerInput">Входной слой.</param> public Network(NetworkMode nm, LayerInput LayerInput) { int[] numbNeuronLayers = { 1800, 120, 84, 2 }; input_layer = LayerInput; Console.WriteLine($"Слой свертки..."); first_convolution = new ConvolutionFirst(); Console.WriteLine($"Слой субдескритизации..."); first_subsamping = new SubsampingFirst(); Console.WriteLine($"Слой свертки..."); second_convolution = new ConvolutionSecond(); Console.WriteLine($"Слой субдескритизации..."); second_subsamping = new SubsampingSecond(); int numbLayerHiddens = 2; hidden_layer = new LayerHidden[numbLayerHiddens]; for (int i = 0; i < numbLayerHiddens; i++) { Console.WriteLine($"Полносвязный слой {i}..."); hidden_layer[i] = new LayerHidden(numbNeuronLayers[i + 1], numbNeuronLayers[i], NeuronType.Hidden, $"LayerHiddenConvolution{i}"); } Console.WriteLine($"Полносвязный слой output..."); output_layer = new LayerOutput(numbNeuronLayers[numbNeuronLayers.Length - 1], numbNeuronLayers[numbNeuronLayers.Length - 2], NeuronType.Output, "LayerOutputConvolution"); fact = new double[numbNeuronLayers[numbNeuronLayers.Length - 1]]; }
public void TestSerializer() { var path = "D:\\3.xml"; var outputLayer = new LayerOutput(new DataShape(5, 1), 1); outputLayer.Serializer(path); Assert.IsTrue(File.Exists(path)); }
/// <summary> /// </summary> /// <param name="nm">Режима работы сети (Train, Test, Demo).</param> /// <param name="numbLayerHiddens">Количество слоев сети.</param> /// <param name="numbNeuronLayers">Массив из количества нейронов в слоях.</param> public Network(NetworkMode nm, int numbLayerHiddens, int[] numbNeuronLayers, LayerInput LayerInput) { input_layer = LayerInput; hidden_layer = new LayerHidden[numbLayerHiddens]; for (int i = 0; i < numbLayerHiddens; i++) { Console.WriteLine($"Слой персептрона {i}..."); hidden_layer[i] = new LayerHidden(numbNeuronLayers[i + 1], numbNeuronLayers[i], NeuronType.Hidden, $"LayerHidden{i}"); } Console.WriteLine($"Слой персептрона output..."); output_layer = new LayerOutput(numbNeuronLayers[numbNeuronLayers.Length - 1], numbNeuronLayers[numbNeuronLayers.Length - 2], NeuronType.Output, nameof(output_layer)); fact = new double[numbNeuronLayers[numbNeuronLayers.Length - 1]]; }
private void AddLayerOutput(int neurons) { var layer = new LayerOutput { Neurons = new List <Neuron>(), }; for (var i = 1; i <= neurons; i++) { var neuron = new NeuronOutput { Connections1 = new List <Connection>(), Connections2 = new List <Connection>(), }; neuron.Bias = Math2.Range(-1f, 1); layer.Neurons.Add(neuron); } this.Layers.Add(layer); }
public void CreateLayNet(TrainParameters layNetParameter) { LayerNet = new List <Layer>(); var inputLayer = new LayerInput(InputDataShape) { LayerIndex = 0 }; LayerNet.Add(inputLayer); layNetParameter.InterLayerStructs.ToList().ForEach(a => { var dataShape = LayerNet.Last().ShapeOut; switch (a.LayerType) { case LayerType.FullConnectLayer: var fullConnectedLayer = new LayerFullConnected(dataShape, a.NeureCount) { LayerIndex = LayerNet.Count }; LayerNet.Add(fullConnectedLayer); break; case LayerType.PoolingLayer: var poolingLayer = new LayerPooling(dataShape) { LayerIndex = LayerNet.Count }; LayerNet.Add(poolingLayer); break; } }); var outputLayer = new LayerOutput(LayerNet.Last().ShapeOut, OutputDataShape) { LayerIndex = LayerNet.Count }; LayerNet.Add(outputLayer); }
public void TestInitial() { var outputLayer = new LayerOutput(new DataShape(5, 1), 1); Assert.AreNotEqual(outputLayer, null); }