FixedAffineComponent is an affine transform that is supplied at network initialization time and is not trainable. More...
#include <nnet-component.h>
Public Member Functions | |
FixedAffineComponent () | |
virtual std::string | Type () const |
virtual std::string | Info () const |
void | Init (const CuMatrixBase< BaseFloat > &matrix) |
matrix should be of size input-dim+1 to output-dim, last col is offset More... | |
virtual void | InitFromString (std::string args) |
Initialize, typically from a line of a config file. More... | |
virtual int32 | InputDim () const |
Get size of input vectors. More... | |
virtual int32 | OutputDim () const |
Get size of output vectors. More... | |
virtual void | Propagate (const ChunkInfo &in_info, const ChunkInfo &out_info, const CuMatrixBase< BaseFloat > &in, CuMatrixBase< BaseFloat > *out) const |
Perform forward pass propagation Input->Output. More... | |
virtual void | Backprop (const ChunkInfo &in_info, const ChunkInfo &out_info, const CuMatrixBase< BaseFloat > &in_value, const CuMatrixBase< BaseFloat > &out_value, const CuMatrixBase< BaseFloat > &out_deriv, Component *to_update, CuMatrix< BaseFloat > *in_deriv) const |
Perform backward pass propagation of the derivative, and also either update the model (if to_update == this) or update another model or compute the model derivative (otherwise). More... | |
virtual bool | BackpropNeedsInput () const |
virtual bool | BackpropNeedsOutput () const |
virtual Component * | Copy () const |
Copy component (deep copy). More... | |
virtual void | Read (std::istream &is, bool binary) |
virtual void | Write (std::ostream &os, bool binary) const |
Write component to stream. More... | |
const CuMatrix< BaseFloat > & | LinearParams () const |
Public Member Functions inherited from Component | |
Component () | |
virtual int32 | Index () const |
Returns the index in the sequence of layers in the neural net; intended only to be used in debugging information. More... | |
virtual void | SetIndex (int32 index) |
virtual std::vector< int32 > | Context () const |
Return a vector describing the temporal context this component requires for each frame of output, as a sorted list. More... | |
void | Propagate (const ChunkInfo &in_info, const ChunkInfo &out_info, const CuMatrixBase< BaseFloat > &in, CuMatrix< BaseFloat > *out) const |
A non-virtual propagate function that first resizes output if necessary. More... | |
virtual | ~Component () |
Protected Member Functions | |
KALDI_DISALLOW_COPY_AND_ASSIGN (FixedAffineComponent) | |
Protected Attributes | |
CuMatrix< BaseFloat > | linear_params_ |
CuVector< BaseFloat > | bias_params_ |
Friends | |
class | AffineComponent |
Additional Inherited Members | |
Static Public Member Functions inherited from Component | |
static Component * | ReadNew (std::istream &is, bool binary) |
Read component from stream. More... | |
static Component * | NewFromString (const std::string &initializer_line) |
Initialize the Component from one line that will contain first the type, e.g. More... | |
static Component * | NewComponentOfType (const std::string &type) |
Return a new Component of the given type e.g. More... | |
FixedAffineComponent is an affine transform that is supplied at network initialization time and is not trainable.
Definition at line 1454 of file nnet-component.h.
|
inline |
Definition at line 1456 of file nnet-component.h.
|
virtual |
Perform backward pass propagation of the derivative, and also either update the model (if to_update == this) or update another model or compute the model derivative (otherwise).
Note: in_value and out_value are the values of the input and output of the component, and these may be dummy variables if respectively BackpropNeedsInput() or BackpropNeedsOutput() return false for that component (not all components need these).
num_chunks lets us treat the input matrix as contiguous-in-time chunks of equal size; it only matters if splicing is involved.
Implements Component.
Definition at line 3300 of file nnet-component.cc.
References CuMatrixBase< Real >::AddMatMat(), kaldi::kNoTrans, AffineComponent::linear_params_, CuMatrixBase< Real >::NumRows(), and CuMatrix< Real >::Resize().
|
inlinevirtual |
Reimplemented from Component.
Definition at line 1481 of file nnet-component.h.
|
inlinevirtual |
Reimplemented from Component.
Definition at line 1482 of file nnet-component.h.
References kaldi::cu::Copy().
|
virtual |
Copy component (deep copy).
Implements Component.
Definition at line 3311 of file nnet-component.cc.
References AffineComponent::bias_params_, FixedAffineComponent::bias_params_, AffineComponent::linear_params_, and FixedAffineComponent::linear_params_.
Referenced by AffineComponent::CollapseWithNext(), and AffineComponent::CollapseWithPrevious().
|
virtual |
Reimplemented from Component.
Definition at line 3272 of file nnet-component.cc.
References AffineComponent::bias_params_, Component::Info(), kaldi::kTrans, AffineComponent::linear_params_, kaldi::TraceMatMat(), and kaldi::VecVec().
void Init | ( | const CuMatrixBase< BaseFloat > & | matrix | ) |
matrix should be of size input-dim+1 to output-dim, last col is offset
Definition at line 3245 of file nnet-component.cc.
References AffineComponent::bias_params_, KALDI_ASSERT, AffineComponent::linear_params_, CuMatrixBase< Real >::NumCols(), CuMatrixBase< Real >::NumRows(), and CuMatrixBase< Real >::Range().
Referenced by kaldi::nnet2::UnitTestFixedAffineComponent().
|
virtual |
Initialize, typically from a line of a config file.
The "args" will contain any parameters that need to be passed to the Component, e.g. dimensions.
Implements Component.
Definition at line 3254 of file nnet-component.cc.
References AffineComponentPreconditionedOnline::Init(), KALDI_ASSERT, KALDI_ERR, CuMatrixBase< Real >::NumRows(), kaldi::nnet2::ParseFromString(), CuMatrix< Real >::Read(), Input::Stream(), and AffineComponentPreconditionedOnline::Type().
|
inlinevirtual |
Get size of input vectors.
Implements Component.
Definition at line 1467 of file nnet-component.h.
Referenced by AffineComponent::CollapseWithPrevious().
|
protected |
Definition at line 1488 of file nnet-component.h.
|
inlinevirtual |
Get size of output vectors.
Implements Component.
Definition at line 1468 of file nnet-component.h.
References Component::Propagate().
Referenced by AffineComponent::CollapseWithNext().
|
virtual |
Perform forward pass propagation Input->Output.
Each row is one frame or training example. Interpreted as "num_chunks" equally sized chunks of frames; this only matters for layers that do things like context splicing. Typically this variable will either be 1 (when we're processing a single contiguous chunk of data) or will be the same as in.NumFrames(), but other values are possible if some layers do splicing.
Implements Component.
Definition at line 3288 of file nnet-component.cc.
References CuMatrixBase< Real >::AddMatMat(), CuMatrixBase< Real >::AddVecToRows(), AffineComponent::bias_params_, ChunkInfo::CheckSize(), KALDI_ASSERT, kaldi::kNoTrans, kaldi::kTrans, AffineComponent::linear_params_, and ChunkInfo::NumChunks().
|
virtual |
Implements Component.
Definition at line 3328 of file nnet-component.cc.
References AffineComponent::bias_params_, kaldi::nnet2::ExpectOneOrTwoTokens(), kaldi::ExpectToken(), and AffineComponent::linear_params_.
|
inlinevirtual |
Implements Component.
Definition at line 1457 of file nnet-component.h.
|
virtual |
Write component to stream.
Implements Component.
Definition at line 3319 of file nnet-component.cc.
References AffineComponent::bias_params_, AffineComponent::linear_params_, and kaldi::WriteToken().
|
friend |
Definition at line 1490 of file nnet-component.h.
Definition at line 1492 of file nnet-component.h.
Referenced by AffineComponent::CollapseWithNext(), AffineComponent::CollapseWithPrevious(), and FixedAffineComponent::Copy().
Definition at line 1491 of file nnet-component.h.
Referenced by AffineComponent::CollapseWithNext(), AffineComponent::CollapseWithPrevious(), and FixedAffineComponent::Copy().