Coding a GRU

To construct a gated recurrent unit, we simply call the MakeGru() function of our NetworkBuilder as shown here:

INetwork nn = NetworkBuilder.MakeGru(inputDimension,
hiddenDimension,
hiddenLayers,
outputDimension,
data.GetModelOutputUnitToUse(),
initParamsStdDev, rng);

The MakeGru() function calls the same named function internally to construct our GRU network. Here is a look at how it does it:

public static NeuralNetwork MakeGru(int inputDimension, int hiddenDimension, int hiddenLayers, int outputDimension, INonlinearity decoderUnit, double initParamsStdDev, Random rng)
{
List<ILayer> layers = new List<ILayer>();
for (int h = 0; h<hiddenLayers; h++)
{
layers.Add(h == 0
? newGruLayer(inputDimension, hiddenDimension, initParamsStdDev, rng)
: newGruLayer(hiddenDimension, hiddenDimension, initParamsStdDev, rng));
}
layers.Add(new FeedForwardLayer(hiddenDimension, outputDimension, decoderUnit, initParamsStdDev, rng));
return new NeuralNetwork(layers);
}
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset