Consumes n values and produces a big vector in the form of two vectors (concatenated together) whose corresponding values form all pairs of inputs, plus each input is also paired with each of "lo" and "hi". Example: If the input is {1,2,3}, then the output will be {1,1,1,1,2,2,2,3,3, 2,3,lo,hi,3,lo,hi,lo,hi}. Thus, if there are n inputs, there will be n(n-1)+4n outputs.
|
| GBlockAllPairings (size_t inputs, double lo, double hi) |
| General-purpose constructor. More...
|
|
| GBlockAllPairings (GDomNode *pNode) |
| Deserializing constructor. More...
|
|
| ~GBlockAllPairings () |
|
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...
|
|
size_t | findSource (size_t outputUnit) |
| Returns the input unit that is connected with the specifed output unit. Returns inputs() for "lo", and inputs()+1 for "hi". (The current implementation is not very efficient.) 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...
|
|
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 | resize (size_t inputs, size_t outputs) override |
| Resizes this block. outputs must be 2*inputs. More...
|
|
virtual GDomNode * | serialize (GDom *pDoc) const override |
| Marshall this block into a DOM. More...
|
|
virtual BlockType | type () const override |
| Returns the type of this block. More...
|
|
| 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...
|
|
| 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...
|
|