GClasses
|
#include <GBlock.h>
Classes | |
struct | Image |
Image abstraction to facilitate convolution. More... | |
Public Member Functions | |
GBlockConvolutional2D (size_t width, size_t height, size_t channels, size_t kWidth, size_t kHeight, size_t kCount=0) | |
General-purpose constructor. More... | |
GBlockConvolutional2D (size_t kWidth, size_t kHeight, size_t kCount=0) | |
Constructor that will automatically use the upstream convolutional block when added to a neural network. More... | |
GBlockConvolutional2D (GDomNode *pNode) | |
void | addKernel () |
void | addKernels (size_t n) |
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 GVec & | bias () const |
GVec & | bias () |
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 | forwardProp (GContext &ctx, const GVec &input, GVec &output) const override |
Evaluate the input, set the output. More... | |
size_t | inputChannels () const |
size_t | inputHeight () const |
virtual size_t | inputs () const override |
Returns the number of inputs this block consumes. More... | |
size_t | inputWidth () const |
size_t | kernelChannels () const |
size_t | kernelCount () const |
size_t | kernelHeight () const |
const GMatrix & | kernels () const |
GMatrix & | kernels () |
size_t | kernelWidth () const |
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... | |
size_t | outputChannels () const |
size_t | outputHeight () const |
virtual size_t | outputs () const override |
Returns the number of outputs this block produces. More... | |
size_t | outputWidth () const |
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 | 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... | |
void | setInputInterlaced (bool interlaced) |
void | setInterlaced (bool interlaced) |
void | setKernelsInterlaced (bool interlaced) |
void | setOutputInterlaced (bool interlaced) |
void | setPadding (size_t px, size_t py=none) |
void | setStride (size_t sx, size_t sy=none) |
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... | |
Static Public Attributes | |
static size_t | none |
Protected Attributes | |
Image | m_actImage |
GVec | m_bias |
Data. More... | |
GVec | m_biasDelta |
size_t | m_channels |
Image | m_deltaImage |
Image | m_errImage |
size_t | m_height |
Image | m_inputImage |
Image | m_kernelImage |
Data as images. More... | |
GMatrix | m_kernels |
size_t | m_kHeight |
size_t | m_kWidth |
Kernel dimensions (kernel channels = input channels) More... | |
size_t | m_outputHeight |
size_t | m_outputWidth |
Output dimensions (derived; output channels = kernel count) More... | |
Image | m_upStreamErrorImage |
size_t | m_width |
Input dimensions. More... | |
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 GBlock * | deserialize (GDomNode *pNode) |
Unmarshalls the specified DOM node into a block object. 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... | |
GClasses::GBlockConvolutional2D::GBlockConvolutional2D | ( | size_t | width, |
size_t | height, | ||
size_t | channels, | ||
size_t | kWidth, | ||
size_t | kHeight, | ||
size_t | kCount = 0 |
||
) |
General-purpose constructor.
GClasses::GBlockConvolutional2D::GBlockConvolutional2D | ( | size_t | kWidth, |
size_t | kHeight, | ||
size_t | kCount = 0 |
||
) |
Constructor that will automatically use the upstream convolutional block when added to a neural network.
GClasses::GBlockConvolutional2D::GBlockConvolutional2D | ( | GDomNode * | pNode | ) |
void GClasses::GBlockConvolutional2D::addKernel | ( | ) |
void GClasses::GBlockConvolutional2D::addKernels | ( | size_t | n | ) |
|
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.
|
inline |
|
inline |
|
overridevirtual |
Copy the weights from pSource to this block. (Assumes pSource is the same type of block.)
Implements GClasses::GBlock.
|
overridevirtual |
Moves all weights in the direction of zero by the specified amount.
Implements GClasses::GBlock.
|
overridevirtual |
Evaluate the input, set the output.
Implements GClasses::GBlock.
|
inline |
|
inline |
|
inlineoverridevirtual |
Returns the number of inputs this block consumes.
Implements GClasses::GBlock.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
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.
|
inline |
|
inline |
|
inlineoverridevirtual |
Returns the number of outputs this block produces.
Implements GClasses::GBlock.
|
inline |
|
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, usually 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.
void GClasses::GBlockConvolutional2D::setInputInterlaced | ( | bool | interlaced | ) |
void GClasses::GBlockConvolutional2D::setInterlaced | ( | bool | interlaced | ) |
void GClasses::GBlockConvolutional2D::setKernelsInterlaced | ( | bool | interlaced | ) |
void GClasses::GBlockConvolutional2D::setOutputInterlaced | ( | bool | interlaced | ) |
void GClasses::GBlockConvolutional2D::setPadding | ( | size_t | px, |
size_t | py = none |
||
) |
void GClasses::GBlockConvolutional2D::setStride | ( | size_t | sx, |
size_t | sy = none |
||
) |
|
overridevirtual |
Add the weight and bias gradient to the weights.
Implements GClasses::GBlock.
|
inlineoverridevirtual |
Returns the type of this block.
Implements GClasses::GBlock.
|
overridevirtual |
Updates the gradient for updating the weights by gradient descent. (Assumes the error has already been computed and deactivated.)
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.
|
protected |
|
protected |
Data.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Data as images.
|
protected |
|
protected |
|
protected |
Kernel dimensions (kernel channels = input channels)
|
protected |
|
protected |
Output dimensions (derived; output channels = kernel count)
|
protected |
|
protected |
Input dimensions.
|
static |