GClasses
GClasses::GBlockWeightless Class Reference

Detailed Description

The base class of blocks that have no weights.

#include <GBlock.h>

Inheritance diagram for GClasses::GBlockWeightless:
GClasses::GBlock GClasses::GBlockActivation GClasses::GBlockAllPairings GClasses::GBlockScalarProduct GClasses::GBlockScalarSum GClasses::GBlockSwitch GClasses::GMaxPooling2D GClasses::GBlockBentIdentity GClasses::GBlockGaussian GClasses::GBlockIdentity GClasses::GBlockLeakyRectifier GClasses::GBlockLogistic GClasses::GBlockRectifier GClasses::GBlockScaledTanh GClasses::GBlockSigExp GClasses::GBlockSine GClasses::GBlockSoftPlus GClasses::GBlockSoftRoot GClasses::GBlockTanh

Public Member Functions

 GBlockWeightless ()
 
 GBlockWeightless (GDomNode *pNode)
 
virtual ~GBlockWeightless ()
 
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 void diminishWeights (double amount, bool regularizeBiases) override
 Moves all weights in the direction of zero by the specified amount. 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 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, usually with small random values. More...
 
virtual void scaleWeights (double factor, bool scaleBiases) override
 Multiplies all the weights by the specified factor. More...
 
virtual void step (double learningRate, const GVec &gradient) override
 Add the weight and bias gradient to the weights. More...
 
virtual void updateGradient (GContext &ctx, const GVec &input, const GVec &outBlame, GVec &gradient) const override
 Evaluate the input and outBlame, update the gradient for updating the weights by gradient descent. 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::GBlock
 GBlock ()
 
 GBlock (GDomNode *pNode)
 
virtual ~GBlock ()
 
virtual void backProp (GContext &ctx, const GVec &input, const GVec &output, const GVec &outBlame, GVec &inBlame) const =0
 Evaluates outBlame, and adds to inBlame. (Note that it "adds to" the inBlame because multiple blocks may fork from a common source.) More...
 
virtual bool elementWise () const
 Returns true iff this block operates only on individual elements. More...
 
virtual void forwardProp (GContext &ctx, const GVec &input, GVec &output) const =0
 Evaluates the input, sets the output. More...
 
size_t inPos () const
 Returns the offset in the previous layer's output where values are fed as input to this block. More...
 
virtual size_t inputs () const =0
 Returns the number of inputs this block consumes. More...
 
virtual bool isRecurrent () const
 Returns true iff this block is recurrent. More...
 
virtual std::string name () const =0
 Returns the name of this block in the form of a string. More...
 
virtual size_t outputs () const =0
 Returns the number of outputs this block produces. More...
 
virtual void resize (size_t inputs, size_t outputs)=0
 Resizes this block. More...
 
virtual GDomNodeserialize (GDom *pDoc) const =0
 Marshall this block into a DOM. 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 BlockType type () const =0
 Returns the type of this block. More...
 
virtual bool usesGPU ()
 Returns true iff this block does its computations in parallel on a GPU. More...
 

Additional Inherited Members

- Public Types inherited from GClasses::GBlock
- Static Public Member Functions inherited from GClasses::GBlock
static GBlockdeserialize (GDomNode *pNode)
 Unmarshalls the specified DOM node into a block object. More...
 
- Protected Member Functions inherited from GClasses::GBlock
GDomNodebaseDomNode (GDom *pDoc) const
 
void basicTest ()
 Exercises some basic functionality that all blocks have in common. More...
 
- Protected Attributes inherited from GClasses::GBlock
size_t m_inPos
 

Constructor & Destructor Documentation

GClasses::GBlockWeightless::GBlockWeightless ( )
inline
GClasses::GBlockWeightless::GBlockWeightless ( GDomNode pNode)
inline
virtual GClasses::GBlockWeightless::~GBlockWeightless ( )
inlinevirtual

Member Function Documentation

virtual void GClasses::GBlockWeightless::copyWeights ( const GBlock pSource)
inlineoverridevirtual

Copy the weights from pSource to this block. (Assumes pSource is the same type of block.)

Implements GClasses::GBlock.

virtual void GClasses::GBlockWeightless::diminishWeights ( double  amount,
bool  regularizeBiases 
)
inlineoverridevirtual

Moves all weights in the direction of zero by the specified amount.

Implements GClasses::GBlock.

virtual void GClasses::GBlockWeightless::maxNorm ( double  min,
double  max 
)
inlineoverridevirtual

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.

virtual void GClasses::GBlockWeightless::perturbWeights ( GRand rand,
double  deviation 
)
inlineoverridevirtual

Perturbs the weights that feed into the specifed units with Gaussian noise. The default values apply the perturbation to all units.

Implements GClasses::GBlock.

virtual void GClasses::GBlockWeightless::resetWeights ( GRand rand)
inlineoverridevirtual

Initialize the weights, usually with small random values.

Implements GClasses::GBlock.

virtual void GClasses::GBlockWeightless::scaleWeights ( double  factor,
bool  scaleBiases 
)
inlineoverridevirtual

Multiplies all the weights by the specified factor.

Implements GClasses::GBlock.

virtual void GClasses::GBlockWeightless::step ( double  learningRate,
const GVec gradient 
)
inlineoverridevirtual

Add the weight and bias gradient to the weights.

Implements GClasses::GBlock.

virtual void GClasses::GBlockWeightless::updateGradient ( GContext ctx,
const GVec input,
const GVec outBlame,
GVec gradient 
) const
inlineoverridevirtual

Evaluate the input and outBlame, update the gradient for updating the weights by gradient descent.

Implements GClasses::GBlock.

virtual size_t GClasses::GBlockWeightless::vectorToWeights ( const double *  pVector)
inlineoverridevirtual

Deserialize from a vector to the weights in this block. Return the number of elements consumed.

Implements GClasses::GBlock.

virtual size_t GClasses::GBlockWeightless::weightCount ( ) const
inlineoverridevirtual

Returns the number of double-precision elements necessary to serialize the weights of this block into a vector.

Implements GClasses::GBlock.

virtual size_t GClasses::GBlockWeightless::weightsToVector ( double *  pOutVector) const
inlineoverridevirtual

Serialize the weights in this block into a vector. Return the number of elements written.

Implements GClasses::GBlock.