#include <nnet-rbm.h>
Public Member Functions | |
Rbm (int32 dim_in, int32 dim_out) | |
~Rbm () | |
Component * | Copy () const |
Copy component (deep copy),. More... | |
ComponentType | GetType () const |
Get Type Identification of the component,. More... | |
void | InitData (std::istream &is) |
Virtual interface for initialization and I/O,. More... | |
void | ReadData (std::istream &is, bool binary) |
Reads the component content. More... | |
void | WriteData (std::ostream &os, bool binary) const |
Writes the component content. More... | |
void | PropagateFnc (const CuMatrixBase< BaseFloat > &in, CuMatrixBase< BaseFloat > *out) |
Abstract interface for propagation/backpropagation. More... | |
void | Reconstruct (const CuMatrixBase< BaseFloat > &hid_state, CuMatrix< BaseFloat > *vis_probs) |
void | RbmUpdate (const CuMatrixBase< BaseFloat > &pos_vis, const CuMatrixBase< BaseFloat > &pos_hid, const CuMatrixBase< BaseFloat > &neg_vis, const CuMatrixBase< BaseFloat > &neg_hid) |
RbmNodeType | VisType () const |
RbmNodeType | HidType () const |
void | WriteAsNnet (std::ostream &os, bool binary) const |
Public Member Functions inherited from RbmBase | |
RbmBase (int32 dim_in, int32 dim_out) | |
void | SetRbmTrainOptions (const RbmTrainOptions &opts) |
Set training hyper-parameters to the network and its UpdatableComponent(s) More... | |
const RbmTrainOptions & | GetRbmTrainOptions () const |
Get training hyper-parameters from the network. More... | |
Public Member Functions inherited from Component | |
Component (int32 input_dim, int32 output_dim) | |
Generic interface of a component,. More... | |
virtual | ~Component () |
virtual bool | IsUpdatable () const |
Check if componeny has 'Updatable' interface (trainable components),. More... | |
virtual bool | IsMultistream () const |
Check if component has 'Recurrent' interface (trainable and recurrent),. More... | |
int32 | InputDim () const |
Get the dimension of the input,. More... | |
int32 | OutputDim () const |
Get the dimension of the output,. More... | |
void | Propagate (const CuMatrixBase< BaseFloat > &in, CuMatrix< BaseFloat > *out) |
Perform forward-pass propagation 'in' -> 'out',. More... | |
void | Backpropagate (const CuMatrixBase< BaseFloat > &in, const CuMatrixBase< BaseFloat > &out, const CuMatrixBase< BaseFloat > &out_diff, CuMatrix< BaseFloat > *in_diff) |
Perform backward-pass propagation 'out_diff' -> 'in_diff'. More... | |
void | Write (std::ostream &os, bool binary) const |
Write the component to a stream,. More... | |
virtual std::string | Info () const |
Print some additional info (after <ComponentName> and the dims),. More... | |
virtual std::string | InfoGradient () const |
Print some additional info about gradient (after <...> and dims),. More... | |
Protected Attributes | |
CuMatrix< BaseFloat > | vis_hid_ |
Matrix with neuron weights. More... | |
CuVector< BaseFloat > | vis_bias_ |
Vector with biases. More... | |
CuVector< BaseFloat > | hid_bias_ |
Vector with biases. More... | |
CuMatrix< BaseFloat > | vis_hid_corr_ |
Matrix for linearity updates. More... | |
CuVector< BaseFloat > | vis_bias_corr_ |
Vector for bias updates. More... | |
CuVector< BaseFloat > | hid_bias_corr_ |
Vector for bias updates. More... | |
RbmNodeType | vis_type_ |
RbmNodeType | hid_type_ |
Protected Attributes inherited from RbmBase | |
RbmTrainOptions | rbm_opts_ |
Protected Attributes inherited from Component | |
int32 | input_dim_ |
Data members,. More... | |
int32 | output_dim_ |
Dimension of the output of the Component,. More... | |
Additional Inherited Members | |
Public Types inherited from RbmBase | |
enum | RbmNodeType { Bernoulli, Gaussian } |
Public Types inherited from Component | |
enum | ComponentType { kUnknown = 0x0, kUpdatableComponent = 0x0100, kAffineTransform, kLinearTransform, kConvolutionalComponent, kLstmProjected, kBlstmProjected, kRecurrentComponent, kActivationFunction = 0x0200, kSoftmax, kHiddenSoftmax, kBlockSoftmax, kSigmoid, kTanh, kParametricRelu, kDropout, kLengthNormComponent, kTranform = 0x0400, kRbm, kSplice, kCopy, kTranspose, kBlockLinearity, kAddShift, kRescale, kKlHmm = 0x0800, kSentenceAveragingComponent, kSimpleSentenceAveragingComponent, kAveragePoolingComponent, kMaxPoolingComponent, kFramePoolingComponent, kParallelComponent, kMultiBasisComponent } |
Component type identification mechanism,. More... | |
Static Public Member Functions inherited from Component | |
static const char * | TypeToMarker (ComponentType t) |
Converts component type to marker,. More... | |
static ComponentType | MarkerToType (const std::string &s) |
Converts marker to component type (case insensitive),. More... | |
static Component * | Init (const std::string &conf_line) |
Initialize component from a line in config file,. More... | |
static Component * | Read (std::istream &is, bool binary) |
Read the component from a stream (static method),. More... | |
Static Public Attributes inherited from Component | |
static const struct key_value | kMarkerMap [] |
The table with pairs of Component types and markers (defined in nnet-component.cc),. More... | |
Definition at line 96 of file nnet-rbm.h.
Definition at line 98 of file nnet-rbm.h.
|
inline |
Definition at line 102 of file nnet-rbm.h.
|
inlinevirtual |
|
inlinevirtual |
Get Type Identification of the component,.
Implements Component.
Definition at line 109 of file nnet-rbm.h.
References Component::kRbm.
|
inlinevirtual |
|
inlinevirtual |
Virtual interface for initialization and I/O,.
Initialize internal data of a component
Reimplemented from Component.
Definition at line 113 of file nnet-rbm.h.
References RbmBase::Bernoulli, rnnlm::d, RbmBase::Gaussian, Nnet::GetComponent(), Nnet::InputDim(), Component::InputDim(), KALDI_ASSERT, KALDI_ERR, KALDI_LOG, kaldi::Log(), Component::OutputDim(), kaldi::nnet1::RandGauss(), kaldi::nnet1::RandUniform(), Nnet::Read(), kaldi::ReadBasicType(), and kaldi::ReadToken().
|
inlinevirtual |
Abstract interface for propagation/backpropagation.
Forward pass transformation (to be implemented by descending class...)
Implements Component.
Definition at line 226 of file nnet-rbm.h.
References CuMatrixBase< Real >::AddMatMat(), CuMatrixBase< Real >::AddVecToRows(), RbmBase::Bernoulli, kaldi::kNoTrans, kaldi::kTrans, and CuMatrixBase< Real >::Sigmoid().
|
inlinevirtual |
Implements RbmBase.
Definition at line 262 of file nnet-rbm.h.
References kaldi::nnet1::CheckNanInf(), kaldi::nnet1::ComputeStdDev(), RbmBase::Gaussian, Component::input_dim_, KALDI_ASSERT, KALDI_WARN, kaldi::kNoTrans, kaldi::kSetZero, kaldi::kTrans, RbmTrainOptions::l2_penalty, RbmTrainOptions::learn_rate, RbmTrainOptions::momentum, CuMatrixBase< Real >::NumCols(), CuMatrixBase< Real >::NumRows(), Component::output_dim_, and RbmBase::rbm_opts_.
|
inlinevirtual |
Reads the component content.
Reimplemented from Component.
Definition at line 182 of file nnet-rbm.h.
References RbmBase::Bernoulli, RbmBase::Gaussian, Component::input_dim_, KALDI_ASSERT, Component::output_dim_, and kaldi::ReadToken().
|
inlinevirtual |
Implements RbmBase.
Definition at line 239 of file nnet-rbm.h.
References CuMatrixBase< Real >::AddMatMat(), CuMatrixBase< Real >::AddVecToRows(), RbmBase::Bernoulli, Component::input_dim_, KALDI_ERR, kaldi::kNoTrans, CuMatrixBase< Real >::NumCols(), CuMatrixBase< Real >::NumRows(), Component::output_dim_, CuMatrix< Real >::Resize(), and CuMatrixBase< Real >::Sigmoid().
|
inlinevirtual |
|
inlinevirtual |
Implements RbmBase.
Definition at line 397 of file nnet-rbm.h.
References RbmBase::Bernoulli, RbmBase::HidType(), Component::InputDim(), Component::kAffineTransform, Component::kSigmoid, Component::OutputDim(), Component::TypeToMarker(), kaldi::WriteBasicType(), and kaldi::WriteToken().
|
inlinevirtual |
Writes the component content.
Reimplemented from Component.
Definition at line 208 of file nnet-rbm.h.
References RbmBase::Bernoulli, RbmBase::Gaussian, KALDI_ERR, and kaldi::WriteToken().
Vector with biases.
Definition at line 418 of file nnet-rbm.h.
Vector for bias updates.
Definition at line 422 of file nnet-rbm.h.
|
protected |
Definition at line 425 of file nnet-rbm.h.
Vector with biases.
Definition at line 417 of file nnet-rbm.h.
Vector for bias updates.
Definition at line 421 of file nnet-rbm.h.
Matrix with neuron weights.
Definition at line 416 of file nnet-rbm.h.
Matrix for linearity updates.
Definition at line 420 of file nnet-rbm.h.
|
protected |
Definition at line 424 of file nnet-rbm.h.