|
GClasses
|
A block of Gated Recurrent Units.
#include <GBlock.h>
Public Member Functions | |
| GBlockGRU (size_t outputs, size_t inputs=0) | |
| GBlockGRU (GDomNode *pNode) | |
| virtual | ~GBlockGRU () |
| virtual void | copyWeights (const GBlock *pSource) override |
| Copy the weights from pSource to this block. (Assumes pSource is the same type of block.) More... | |
| virtual size_t | depth () override |
| Returns the number of instances of this block unfolded through time that will be used during training. More... | |
| virtual void | diminishWeights (double amount, bool regularizeBiases) override |
| Moves all weights in the direction of zero by the specified amount. More... | |
| virtual size_t | inputs () const override |
| Returns the number of inputs this block consumes. More... | |
| virtual void | maxNorm (double min, double max) override |
| Scales weights if necessary such that the manitude of the weights (not including the bias) feeding into each unit are >= min and <= max. More... | |
| virtual std::string | name () const override |
| Returns the name of this block. More... | |
| virtual GContextRecurrentInstance * | newContext (GRand &rand) override |
| Makes a new context object for this block. More... | |
| virtual size_t | outputs () const override |
| Returns the number of outputs this block produces. More... | |
| virtual void | perturbWeights (GRand &rand, double deviation) override |
| Perturbs the weights that feed into the specifed units with Gaussian noise. The default values apply the perturbation to all units. More... | |
| virtual void | resetWeights (GRand &rand) override |
| Initialize the weights with small random values. More... | |
| virtual void | resize (size_t inputs, size_t outputs) override |
| Resizes this block. More... | |
| virtual void | scaleWeights (double factor, bool scaleBiases) override |
| Multiplies all the weights by the specified factor. More... | |
| virtual GDomNode * | serialize (GDom *pDoc) const override |
| Marshall this block into a DOM. More... | |
| virtual void | step (double learningRate, const GVec &gradient) override |
| Add the weight and bias gradient to the weights. More... | |
| virtual BlockType | type () const override |
| Returns the type of this block. More... | |
| virtual size_t | vectorToWeights (const double *pVector) override |
| Deserialize from a vector to the weights in this block. Return the number of elements consumed. More... | |
| virtual size_t | weightCount () const override |
| Returns the number of double-precision elements necessary to serialize the weights of this block into a vector. More... | |
| virtual size_t | weightsToVector (double *pOutVector) const override |
| Serialize the weights in this block into a vector. Return the number of elements written. More... | |
Public Member Functions inherited from GClasses::GBlockRecurrent | |
| GBlockRecurrent () | |
| GBlockRecurrent (GDomNode *pNode) | |
| virtual | ~GBlockRecurrent () |
| virtual bool | isRecurrent () const override |
| Returns true. More... | |
Public Member Functions inherited from GClasses::GBlock | |
| GBlock () | |
| GBlock (GDomNode *pNode) | |
| virtual | ~GBlock () |
| virtual bool | elementWise () const |
| Returns true iff this block operates only on individual elements. More... | |
| size_t | inPos () const |
| Returns the offset in the previous layer's output where values are fed as input to this block. More... | |
| void | setInPos (size_t n) |
| Sets the starting offset in the previous layer's output where values will be fed as input to this block. More... | |
| virtual std::string | to_str () const |
| Returns a string representation of this block. More... | |
| virtual bool | usesGPU () |
| Returns true iff this block does its computations in parallel on a GPU. More... | |
Static Public Member Functions | |
| static void | test () |
Static Public Member Functions inherited from GClasses::GBlock | |
| static GBlock * | deserialize (GDomNode *pNode) |
| Unmarshalls the specified DOM node into a block object. More... | |
Protected Attributes | |
| GBlockLogistic | m_logistic |
| GBlockScalarProduct | m_product |
| GBlockLinear | m_remember |
| GBlockSwitch | m_switch |
| GBlockTanh | m_tanh |
| GBlockLinear | m_update |
| GBlockLinear | m_val |
Protected Attributes inherited from GClasses::GBlock | |
| size_t | m_inPos |
Friends | |
| class | GContextGRU |
Additional Inherited Members | |
Public Types inherited from GClasses::GBlock | |
Protected Member Functions inherited from GClasses::GBlockRecurrent | |
| virtual void | backProp (GContext &ctx, const GVec &input, const GVec &output, const GVec &outBlame, GVec &inBlame) const override |
| Deliberately protected. Throws an exception telling you to call GContextRecurrent::backProp instead. More... | |
| virtual void | forwardProp (GContext &ctx, const GVec &input, GVec &output) const override |
| Deliberately protected. Throws an exception telling you to call GContextRecurrent::forwardProp instead. More... | |
| virtual void | updateGradient (GContext &ctx, const GVec &input, const GVec &outBlame, GVec &gradient) const override |
| Deliberately protected. Throws an exception telling you to call GContextRecurrent::updateGradient instead. More... | |
Protected Member Functions inherited from GClasses::GBlock | |
| GDomNode * | baseDomNode (GDom *pDoc) const |
| void | basicTest () |
| Exercises some basic functionality that all blocks have in common. More... | |
Static Protected Member Functions inherited from GClasses::GBlockRecurrent | |
| static double | testEngine (GNeuralNet &nn) |
| GClasses::GBlockGRU::GBlockGRU | ( | size_t | outputs, |
| size_t | inputs = 0 |
||
| ) |
| GClasses::GBlockGRU::GBlockGRU | ( | GDomNode * | pNode | ) |
|
virtual |
|
overridevirtual |
Copy the weights from pSource to this block. (Assumes pSource is the same type of block.)
Implements GClasses::GBlock.
|
inlineoverridevirtual |
Returns the number of instances of this block unfolded through time that will be used during training.
Implements GClasses::GBlockRecurrent.
|
overridevirtual |
Moves all weights in the direction of zero by the specified amount.
Implements GClasses::GBlock.
|
inlineoverridevirtual |
Returns the number of inputs this block consumes.
Implements GClasses::GBlock.
|
overridevirtual |
Scales weights if necessary such that the manitude of the weights (not including the bias) feeding into each unit are >= min and <= max.
Implements GClasses::GBlock.
|
inlineoverridevirtual |
Returns the name of this block.
Implements GClasses::GBlock.
|
overridevirtual |
Makes a new context object for this block.
Implements GClasses::GBlockRecurrent.
|
inlineoverridevirtual |
Returns the number of outputs this block produces.
Implements GClasses::GBlock.
|
overridevirtual |
Perturbs the weights that feed into the specifed units with Gaussian noise. The default values apply the perturbation to all units.
Implements GClasses::GBlock.
|
overridevirtual |
Initialize the weights with small random values.
Implements GClasses::GBlock.
|
overridevirtual |
Resizes this block.
Implements GClasses::GBlock.
|
overridevirtual |
Multiplies all the weights by the specified factor.
Implements GClasses::GBlock.
Marshall this block into a DOM.
Implements GClasses::GBlock.
|
overridevirtual |
Add the weight and bias gradient to the weights.
Implements GClasses::GBlock.
|
static |
|
inlineoverridevirtual |
Returns the type of this block.
Implements GClasses::GBlock.
|
overridevirtual |
Deserialize from a vector to the weights in this block. Return the number of elements consumed.
Implements GClasses::GBlock.
|
overridevirtual |
Returns the number of double-precision elements necessary to serialize the weights of this block into a vector.
Implements GClasses::GBlock.
|
overridevirtual |
Serialize the weights in this block into a vector. Return the number of elements written.
Implements GClasses::GBlock.
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |