GClasses
GClasses::GBlockConvolutional1D Class Reference

#include <GBlock.h>

Inheritance diagram for GClasses::GBlockConvolutional1D:
GClasses::GBlock

Public Member Functions

 GBlockConvolutional1D (size_t inputSamples, size_t inputChannels, size_t kernelSize, size_t kernelsPerChannel)
 General-purpose constructor. For example, if you collect 19 samples from 3 sensors, then the total input size will be 57 (19*3=57). The three values collected at time 0 will come first, followed by the three values collected at time 1, and so forth. If kernelSize is 5, then the output will consist of 15 (19-5+1=15) samples. If kernelsPerChannel is 2, then there will be 6 (3*2=6) channels in the output, for a total of 90 (15*6=90) output values. The first six channel values will appear first in the output vector, followed by the next six, and so forth. (kernelSize must be <= inputSamples.) More...
 
 GBlockConvolutional1D (GDomNode *pNode)
 Deserializing constructor. More...
 
virtual void backProp (GContext &ctx, const GVec &input, const GVec &output, const GVec &outBlame, GVec &inBlame) const override
 Evaluates outBlame, and adds to inBlame. (Note that it "adds to" the inBlame because multiple blocks may fork from a common source.) More...
 
const GVecbias () const
 
GVecbias ()
 
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
 Diminishes all the weights (that is, moves them in the direction toward 0) by the specified amount. More...
 
virtual void forwardProp (GContext &ctx, const GVec &input, GVec &output) const override
 Evaluate the input, set the output. More...
 
virtual size_t inputs () const override
 Returns the number of inputs this block consumes. More...
 
const GMatrixkernels () const
 
GMatrixkernels ()
 
virtual void maxNorm (double min, double max) override
 Clips each kernel weight (not including the bias) to fall between -max and max. More...
 
virtual std::string name () const override
 Returns the name of 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. start specifies the first unit whose incoming weights are perturbed. count specifies the maximum number of units whose incoming weights are perturbed. 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 in this block by the specified factor. More...
 
virtual GDomNodeserialize (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 void updateGradient (GContext &ctx, const GVec &input, const GVec &outBlame, GVec &gradient) const override
 Updates the gradient for updating the weights by gradient descent. (Assumes the error has already been computed and deactivated.) 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 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...
 
virtual bool isRecurrent () const
 Returns true iff this block is recurrent. 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...
 

Protected Attributes

GVec m_bias
 
size_t m_inputChannels
 
size_t m_inputSamples
 
GMatrix m_kernels
 
size_t m_kernelsPerChannel
 
size_t m_outputSamples
 
- Protected Attributes inherited from GClasses::GBlock
size_t m_inPos
 

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...
 

Constructor & Destructor Documentation

GClasses::GBlockConvolutional1D::GBlockConvolutional1D ( size_t  inputSamples,
size_t  inputChannels,
size_t  kernelSize,
size_t  kernelsPerChannel 
)

General-purpose constructor. For example, if you collect 19 samples from 3 sensors, then the total input size will be 57 (19*3=57). The three values collected at time 0 will come first, followed by the three values collected at time 1, and so forth. If kernelSize is 5, then the output will consist of 15 (19-5+1=15) samples. If kernelsPerChannel is 2, then there will be 6 (3*2=6) channels in the output, for a total of 90 (15*6=90) output values. The first six channel values will appear first in the output vector, followed by the next six, and so forth. (kernelSize must be <= inputSamples.)

GClasses::GBlockConvolutional1D::GBlockConvolutional1D ( GDomNode pNode)

Deserializing constructor.

Member Function Documentation

virtual void GClasses::GBlockConvolutional1D::backProp ( GContext ctx,
const GVec input,
const GVec output,
const GVec outBlame,
GVec inBlame 
) const
overridevirtual

Evaluates outBlame, and adds to inBlame. (Note that it "adds to" the inBlame because multiple blocks may fork from a common source.)

Implements GClasses::GBlock.

const GVec& GClasses::GBlockConvolutional1D::bias ( ) const
inline
GVec& GClasses::GBlockConvolutional1D::bias ( )
inline
virtual void GClasses::GBlockConvolutional1D::copyWeights ( const GBlock pSource)
overridevirtual

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

Implements GClasses::GBlock.

virtual void GClasses::GBlockConvolutional1D::diminishWeights ( double  amount,
bool  regularizeBiases 
)
overridevirtual

Diminishes all the weights (that is, moves them in the direction toward 0) by the specified amount.

Implements GClasses::GBlock.

virtual void GClasses::GBlockConvolutional1D::forwardProp ( GContext ctx,
const GVec input,
GVec output 
) const
overridevirtual

Evaluate the input, set the output.

Implements GClasses::GBlock.

virtual size_t GClasses::GBlockConvolutional1D::inputs ( ) const
inlineoverridevirtual

Returns the number of inputs this block consumes.

Implements GClasses::GBlock.

const GMatrix& GClasses::GBlockConvolutional1D::kernels ( ) const
inline
GMatrix& GClasses::GBlockConvolutional1D::kernels ( )
inline
virtual void GClasses::GBlockConvolutional1D::maxNorm ( double  min,
double  max 
)
overridevirtual

Clips each kernel weight (not including the bias) to fall between -max and max.

Implements GClasses::GBlock.

virtual std::string GClasses::GBlockConvolutional1D::name ( ) const
inlineoverridevirtual

Returns the name of this block.

Implements GClasses::GBlock.

virtual size_t GClasses::GBlockConvolutional1D::outputs ( ) const
inlineoverridevirtual

Returns the number of outputs this block produces.

Implements GClasses::GBlock.

virtual void GClasses::GBlockConvolutional1D::perturbWeights ( GRand rand,
double  deviation 
)
overridevirtual

Perturbs the weights that feed into the specifed units with Gaussian noise. start specifies the first unit whose incoming weights are perturbed. count specifies the maximum number of units whose incoming weights are perturbed.

Implements GClasses::GBlock.

virtual void GClasses::GBlockConvolutional1D::resetWeights ( GRand rand)
overridevirtual

Initialize the weights with small random values.

Implements GClasses::GBlock.

virtual void GClasses::GBlockConvolutional1D::resize ( size_t  inputs,
size_t  outputs 
)
overridevirtual

Resizes this block.

Implements GClasses::GBlock.

virtual void GClasses::GBlockConvolutional1D::scaleWeights ( double  factor,
bool  scaleBiases 
)
overridevirtual

Multiplies all the weights in this block by the specified factor.

Implements GClasses::GBlock.

virtual GDomNode* GClasses::GBlockConvolutional1D::serialize ( GDom pDoc) const
overridevirtual

Marshall this block into a DOM.

Implements GClasses::GBlock.

virtual void GClasses::GBlockConvolutional1D::step ( double  learningRate,
const GVec gradient 
)
overridevirtual

Add the weight and bias gradient to the weights.

Implements GClasses::GBlock.

virtual BlockType GClasses::GBlockConvolutional1D::type ( ) const
inlineoverridevirtual

Returns the type of this block.

Implements GClasses::GBlock.

virtual void GClasses::GBlockConvolutional1D::updateGradient ( GContext ctx,
const GVec input,
const GVec outBlame,
GVec gradient 
) const
overridevirtual

Updates the gradient for updating the weights by gradient descent. (Assumes the error has already been computed and deactivated.)

Implements GClasses::GBlock.

virtual size_t GClasses::GBlockConvolutional1D::vectorToWeights ( const double *  pVector)
overridevirtual

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

Implements GClasses::GBlock.

virtual size_t GClasses::GBlockConvolutional1D::weightCount ( ) const
overridevirtual

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::GBlockConvolutional1D::weightsToVector ( double *  pOutVector) const
overridevirtual

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

Implements GClasses::GBlock.

Member Data Documentation

GVec GClasses::GBlockConvolutional1D::m_bias
protected
size_t GClasses::GBlockConvolutional1D::m_inputChannels
protected
size_t GClasses::GBlockConvolutional1D::m_inputSamples
protected
GMatrix GClasses::GBlockConvolutional1D::m_kernels
protected
size_t GClasses::GBlockConvolutional1D::m_kernelsPerChannel
protected
size_t GClasses::GBlockConvolutional1D::m_outputSamples
protected