public void InitializeLayers(ILayerInitializer initializer) { foreach (var layer in Layers) { initializer.Initialize(layer); } }
public static Network Build(NetworkDefinition definition, ILayerInitializer initializer) { var network = new Network(BuildLayers(definition.Layers, definition.InputSize)); network.InitializeLayers(initializer); return(network); }
public AgentNetwork(AgentNetworkDefinition definition, ILayerInitializer initializer) { InputCoder = new AgentNetworkInputCoder(definition.ViewRadius); var lastLayer = new NetworkLayerDefinition(definition.LastLayerActivationFunction, 1); var networkDefinition = new NetworkDefinition(InputCoder.EncodedSize, definition.Layers.Concat(new[] { lastLayer })); Network = NetworkBuilder.Build(networkDefinition, initializer); }
public Layer(int numberOfNeuronsInPreviousLayer, int numberOfNeurons, ILayerInitializer layerInitializer, IActivation outputActivation) { Weights = Matrix <double> .Build.Dense(numberOfNeuronsInPreviousLayer, numberOfNeurons, layerInitializer.GetWeight); Biases = Vector <double> .Build.Dense(numberOfNeurons, layerInitializer.GetBias); OutputActivation = outputActivation; previousDeltaWeights = Matrix <double> .Build.Dense(Weights.RowCount, Weights.ColumnCount); previousDeltaBiases = Vector <double> .Build.Dense(Biases.Count); }