public GruLayer(int xSize, int hSize, IMatrixInitializer <T> linearWeightInitializer, IMatrixInitializer <T> hiddenWeightInitializer, IMatrixInitializer <T> biasInitializer) { _hSize = hSize; _wxh = new NeuroWeight <T>(linearWeightInitializer.CreateMatrix(hSize, xSize)); _wxr = new NeuroWeight <T>(linearWeightInitializer.CreateMatrix(hSize, xSize)); _wxz = new NeuroWeight <T>(linearWeightInitializer.CreateMatrix(hSize, xSize)); _whh = new NeuroWeight <T>(hiddenWeightInitializer.CreateMatrix(hSize, hSize)); _whr = new NeuroWeight <T>(hiddenWeightInitializer.CreateMatrix(hSize, hSize)); _whz = new NeuroWeight <T>(hiddenWeightInitializer.CreateMatrix(hSize, hSize)); _bxh = new NeuroWeight <T>(biasInitializer.CreateMatrix(hSize, 1)); _bxr = new NeuroWeight <T>(biasInitializer.CreateMatrix(hSize, 1)); _bxz = new NeuroWeight <T>(biasInitializer.CreateMatrix(hSize, 1)); _bhh = new NeuroWeight <T>(biasInitializer.CreateMatrix(hSize, 1)); _bhr = new NeuroWeight <T>(biasInitializer.CreateMatrix(hSize, 1)); _bhz = new NeuroWeight <T>(biasInitializer.CreateMatrix(hSize, 1)); ResetOptimizer(); ErrorFunction = new MeanSquareError <T>(); RegisterWeights(); }
public LinearLayer(int xSize, int ySize, IMatrixInitializer <T> matrixInitializer) { _weights = new NeuroWeight <T>(matrixInitializer.CreateMatrix(ySize, xSize)); _bias = new NeuroWeight <T>(matrixInitializer.CreateMatrix(ySize, 1)); ErrorFunction = new MeanSquareError <T>(); RegisterWeights(_bias, _weights); }