Component Class Referenceabstract

Abstract class, building block of the network. More...

#include <nnet-component.h>

Inheritance diagram for Component:
Collaboration diagram for Component:

Classes

struct  key_value
 A pair of type and marker,. More...
 

Public Types

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

Public Member Functions

 Component (int32 input_dim, int32 output_dim)
 Generic interface of a component,. More...
 
virtual ~Component ()
 
virtual ComponentCopy () const =0
 Copy component (deep copy),. More...
 
virtual ComponentType GetType () const =0
 Get Type Identification of the component,. More...
 
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...
 

Static Public Member Functions

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 ComponentInit (const std::string &conf_line)
 Initialize component from a line in config file,. More...
 
static ComponentRead (std::istream &is, bool binary)
 Read the component from a stream (static method),. More...
 

Static Public Attributes

static const struct key_value kMarkerMap []
 The table with pairs of Component types and markers (defined in nnet-component.cc),. More...
 

Protected Member Functions

virtual void PropagateFnc (const CuMatrixBase< BaseFloat > &in, CuMatrixBase< BaseFloat > *out)=0
 Abstract interface for propagation/backpropagation. More...
 
virtual void BackpropagateFnc (const CuMatrixBase< BaseFloat > &in, const CuMatrixBase< BaseFloat > &out, const CuMatrixBase< BaseFloat > &out_diff, CuMatrixBase< BaseFloat > *in_diff)=0
 Backward pass transformation (to be implemented by descending class...) More...
 
virtual void InitData (std::istream &is)
 Virtual interface for initialization and I/O,. More...
 
virtual void ReadData (std::istream &is, bool binary)
 Reads the component content. More...
 
virtual void WriteData (std::ostream &os, bool binary) const
 Writes the component content. More...
 

Protected Attributes

int32 input_dim_
 Data members,. More...
 
int32 output_dim_
 Dimension of the output of the Component,. More...
 

Static Private Member Functions

static ComponentNewComponentOfType (ComponentType t, int32 input_dim, int32 output_dim)
 Private members (descending classes cannot call this),. More...
 

Detailed Description

Abstract class, building block of the network.

It is able to propagate (PropagateFnc: compute the output based on its input) and backpropagate (BackpropagateFnc: i.e. transform loss derivative w.r.t. output to derivative w.r.t. the input) the formulas are implemented in descendant classes (AffineTransform,Sigmoid,Softmax,...).

Definition at line 51 of file nnet-component.cc.

Member Enumeration Documentation

◆ ComponentType

Component type identification mechanism,.

Types of Components,

Enumerator
kUnknown 
kUpdatableComponent 
kAffineTransform 
kLinearTransform 
kConvolutionalComponent 
kLstmProjected 
kBlstmProjected 
kRecurrentComponent 
kActivationFunction 
kSoftmax 
kHiddenSoftmax 
kBlockSoftmax 
kSigmoid 
kTanh 
kParametricRelu 
kDropout 
kLengthNormComponent 
kTranform 
kRbm 
kSplice 
kCopy 
kTranspose 
kBlockLinearity 
kAddShift 
kRescale 
kKlHmm 
kSentenceAveragingComponent 
kSimpleSentenceAveragingComponent 
kAveragePoolingComponent 
kMaxPoolingComponent 
kFramePoolingComponent 
kParallelComponent 
kMultiBasisComponent 

Definition at line 47 of file nnet-component.h.

47  {
48  kUnknown = 0x0,
49 
50  kUpdatableComponent = 0x0100,
57 
58  kActivationFunction = 0x0200,
59  kSoftmax,
62  kSigmoid,
63  kTanh,
65  kDropout,
67 
68  kTranform = 0x0400,
69  kRbm,
70  kSplice,
71  kCopy,
72  kTranspose,
74  kAddShift,
75  kRescale,
76 
77  kKlHmm = 0x0800,
78  kSentenceAveragingComponent, /* deprecated */
85  } ComponentType;
ComponentType
Component type identification mechanism,.

Constructor & Destructor Documentation

◆ Component()

Component ( int32  input_dim,
int32  output_dim 
)
inline

Generic interface of a component,.

Definition at line 105 of file nnet-component.h.

105  :
106  input_dim_(input_dim),
107  output_dim_(output_dim)
108  { }
int32 input_dim_
Data members,.
int32 output_dim_
Dimension of the output of the Component,.

◆ ~Component()

virtual ~Component ( )
inlinevirtual

Definition at line 110 of file nnet-component.h.

References Component::Copy(), and Component::GetType().

111  { }

Member Function Documentation

◆ Backpropagate()

void Backpropagate ( const CuMatrixBase< BaseFloat > &  in,
const CuMatrixBase< BaseFloat > &  out,
const CuMatrixBase< BaseFloat > &  out_diff,
CuMatrix< BaseFloat > *  in_diff 
)
inline

Perform backward-pass propagation 'out_diff' -> 'in_diff'.

Note: 'in' and 'out' will be used only sometimes...

Definition at line 325 of file nnet-component.h.

References Component::BackpropagateFnc(), Component::InputDim(), KALDI_ASSERT, KALDI_ERR, kaldi::kSetZero, CuMatrixBase< Real >::NumCols(), CuMatrixBase< Real >::NumRows(), Component::OutputDim(), and CuMatrix< Real >::Resize().

Referenced by Component::OutputDim(), kaldi::nnet1::UnitTestConvolutionalComponent3x3(), kaldi::nnet1::UnitTestConvolutionalComponentUnity(), kaldi::nnet1::UnitTestDropoutComponent(), kaldi::nnet1::UnitTestMaxPoolingComponent(), and kaldi::nnet1::UnitTestSimpleSentenceAveragingComponent().

328  {
329  // Check the dims,
330  if (OutputDim() != out_diff.NumCols()) {
331  KALDI_ERR << "Non-matching dims! Component output dim " << OutputDim()
332  << ", the dim of output derivatives " << out_diff.NumCols();
333  }
334 
335  int32 num_frames = out_diff.NumRows();
336  KALDI_ASSERT(num_frames == in.NumRows());
337  KALDI_ASSERT(num_frames == out.NumRows());
338 
339  KALDI_ASSERT(InputDim() == in.NumCols());
340  KALDI_ASSERT(OutputDim() == out.NumCols());
341 
342  // Allocate target buffer,
343  KALDI_ASSERT(in_diff != NULL);
344  in_diff->Resize(num_frames, InputDim(), kSetZero); // reset,
345 
346  // Call the 'virtual' backprop function,
347  BackpropagateFnc(in, out, out_diff, in_diff);
348 }
kaldi::int32 int32
int32 InputDim() const
Get the dimension of the input,.
#define KALDI_ERR
Definition: kaldi-error.h:147
#define KALDI_ASSERT(cond)
Definition: kaldi-error.h:185
int32 OutputDim() const
Get the dimension of the output,.
virtual void BackpropagateFnc(const CuMatrixBase< BaseFloat > &in, const CuMatrixBase< BaseFloat > &out, const CuMatrixBase< BaseFloat > &out_diff, CuMatrixBase< BaseFloat > *in_diff)=0
Backward pass transformation (to be implemented by descending class...)

◆ BackpropagateFnc()

◆ Copy()

◆ GetType()

◆ Info()

virtual std::string Info ( ) const
inlinevirtual

◆ InfoGradient()

virtual std::string InfoGradient ( ) const
inlinevirtual

◆ Init()

Component * Init ( const std::string &  conf_line)
static

Initialize component from a line in config file,.

Definition at line 203 of file nnet-component.cc.

References kaldi::ExpectToken(), Component::InitData(), Component::MarkerToType(), Component::NewComponentOfType(), kaldi::ReadBasicType(), and kaldi::ReadToken().

Referenced by Nnet::Init(), Component::OutputDim(), and kaldi::nnet1::UnitTestMaxPoolingComponent().

203  {
204  std::istringstream is(conf_line);
205  std::string component_type_string;
206  int32 input_dim, output_dim;
207 
208  // initialize component w/o internal data
209  ReadToken(is, false, &component_type_string);
210  ComponentType component_type = MarkerToType(component_type_string);
211  ExpectToken(is, false, "<InputDim>");
212  ReadBasicType(is, false, &input_dim);
213  ExpectToken(is, false, "<OutputDim>");
214  ReadBasicType(is, false, &output_dim);
215  Component *ans = NewComponentOfType(component_type, input_dim, output_dim);
216 
217  // initialize internal data with the remaining part of config line
218  ans->InitData(is);
219 
220  return ans;
221 }
void ReadBasicType(std::istream &is, bool binary, T *t)
ReadBasicType is the name of the read function for bool, integer types, and floating-point types...
Definition: io-funcs-inl.h:55
Component(int32 input_dim, int32 output_dim)
Generic interface of a component,.
kaldi::int32 int32
void ReadToken(std::istream &is, bool binary, std::string *str)
ReadToken gets the next token and puts it in str (exception on failure).
Definition: io-funcs.cc:154
ComponentType
Component type identification mechanism,.
void ExpectToken(std::istream &is, bool binary, const char *token)
ExpectToken tries to read in the given token, and throws an exception on failure. ...
Definition: io-funcs.cc:191
static ComponentType MarkerToType(const std::string &s)
Converts marker to component type (case insensitive),.
static Component * NewComponentOfType(ComponentType t, int32 input_dim, int32 output_dim)
Private members (descending classes cannot call this),.

◆ InitData()

virtual void InitData ( std::istream &  is)
inlineprotectedvirtual

◆ InputDim()

◆ IsMultistream()

virtual bool IsMultistream ( ) const
inlinevirtual

Check if component has 'Recurrent' interface (trainable and recurrent),.

Reimplemented in MultistreamComponent.

Definition at line 125 of file nnet-component.h.

Referenced by Nnet::ResetStreams(), and Nnet::SetSeqLengths().

125  {
126  return false;
127  }

◆ IsUpdatable()

virtual bool IsUpdatable ( ) const
inlinevirtual

Check if componeny has 'Updatable' interface (trainable components),.

Reimplemented in UpdatableComponent.

Definition at line 120 of file nnet-component.h.

Referenced by main(), and Nnet::SetTrainOptions().

120  {
121  return false;
122  }

◆ MarkerToType()

Component::ComponentType MarkerToType ( const std::string &  s)
static

Converts marker to component type (case insensitive),.

Definition at line 94 of file nnet-component.cc.

References rnnlm::i, KALDI_ERR, Component::kMarkerMap, Component::kUnknown, and Component::key_value::value.

Referenced by Component::Init(), and Component::Read().

94  {
95  std::string s_lowercase(s);
96  std::transform(s.begin(), s.end(), s_lowercase.begin(), ::tolower); // lc
97  int32 N = sizeof(kMarkerMap) / sizeof(kMarkerMap[0]);
98  for (int i = 0; i < N; i++) {
99  std::string m(kMarkerMap[i].value);
100  std::string m_lowercase(m);
101  std::transform(m.begin(), m.end(), m_lowercase.begin(), ::tolower);
102  if (s_lowercase == m_lowercase) return kMarkerMap[i].key;
103  }
104  KALDI_ERR << "Unknown 'Component' marker : '" << s << "'\n"
105  << "(isn't the model 'too old' or incompatible?)";
106  return kUnknown;
107 }
kaldi::int32 int32
static const struct key_value kMarkerMap[]
The table with pairs of Component types and markers (defined in nnet-component.cc),.
#define KALDI_ERR
Definition: kaldi-error.h:147

◆ NewComponentOfType()

Component * NewComponentOfType ( ComponentType  t,
int32  input_dim,
int32  output_dim 
)
staticprivate

Private members (descending classes cannot call this),.

Create a new intance of component,

Definition at line 110 of file nnet-component.cc.

References Component::kAddShift, Component::kAffineTransform, KALDI_ERR, Component::kAveragePoolingComponent, Component::kBlockSoftmax, Component::kBlstmProjected, Component::kConvolutionalComponent, Component::kCopy, Component::kDropout, Component::kFramePoolingComponent, Component::kHiddenSoftmax, Component::kKlHmm, Component::kLengthNormComponent, Component::kLinearTransform, Component::kLstmProjected, Component::kMaxPoolingComponent, Component::kMultiBasisComponent, Component::kParallelComponent, Component::kParametricRelu, Component::kRbm, Component::kRecurrentComponent, Component::kRescale, Component::kSentenceAveragingComponent, Component::kSigmoid, Component::kSimpleSentenceAveragingComponent, Component::kSoftmax, Component::kSplice, Component::kTanh, Component::kUnknown, kaldi::cu::Splice(), and Component::TypeToMarker().

Referenced by Component::Init(), and Component::Read().

111  {
112  Component *ans = NULL;
113  switch (comp_type) {
115  ans = new AffineTransform(input_dim, output_dim);
116  break;
118  ans = new LinearTransform(input_dim, output_dim);
119  break;
121  ans = new ConvolutionalComponent(input_dim, output_dim);
122  break;
124  ans = new LstmProjected(input_dim, output_dim);
125  break;
127  ans = new BlstmProjected(input_dim, output_dim);
128  break;
130  ans = new RecurrentComponent(input_dim, output_dim);
131  break;
132  case Component::kSoftmax :
133  ans = new Softmax(input_dim, output_dim);
134  break;
136  ans = new HiddenSoftmax(input_dim, output_dim);
137  break;
139  ans = new BlockSoftmax(input_dim, output_dim);
140  break;
141  case Component::kSigmoid :
142  ans = new Sigmoid(input_dim, output_dim);
143  break;
144  case Component::kTanh :
145  ans = new Tanh(input_dim, output_dim);
146  break;
148  ans = new ParametricRelu(input_dim, output_dim);
149  break;
150  case Component::kDropout :
151  ans = new Dropout(input_dim, output_dim);
152  break;
154  ans = new LengthNormComponent(input_dim, output_dim);
155  break;
156  case Component::kRbm :
157  ans = new Rbm(input_dim, output_dim);
158  break;
159  case Component::kSplice :
160  ans = new Splice(input_dim, output_dim);
161  break;
162  case Component::kCopy :
163  ans = new CopyComponent(input_dim, output_dim);
164  break;
165  case Component::kAddShift :
166  ans = new AddShift(input_dim, output_dim);
167  break;
168  case Component::kRescale :
169  ans = new Rescale(input_dim, output_dim);
170  break;
171  case Component::kKlHmm :
172  ans = new KlHmm(input_dim, output_dim);
173  break;
175  ans = new SentenceAveragingComponent(input_dim, output_dim);
176  break;
178  ans = new SimpleSentenceAveragingComponent(input_dim, output_dim);
179  break;
181  ans = new AveragePoolingComponent(input_dim, output_dim);
182  break;
184  ans = new MaxPoolingComponent(input_dim, output_dim);
185  break;
187  ans = new FramePoolingComponent(input_dim, output_dim);
188  break;
190  ans = new ParallelComponent(input_dim, output_dim);
191  break;
193  ans = new MultiBasisComponent(input_dim, output_dim);
194  break;
195  case Component::kUnknown :
196  default :
197  KALDI_ERR << "Missing type: " << TypeToMarker(comp_type);
198  }
199  return ans;
200 }
Component(int32 input_dim, int32 output_dim)
Generic interface of a component,.
static const char * TypeToMarker(ComponentType t)
Converts component type to marker,.
#define KALDI_ERR
Definition: kaldi-error.h:147
void Splice(const CuMatrixBase< Real > &src, const CuArray< int32 > &frame_offsets, CuMatrixBase< Real > *tgt)
Splice concatenates frames of src as specified in frame_offsets into tgt.
Definition: cu-math.cc:132

◆ OutputDim()

◆ Propagate()

void Propagate ( const CuMatrixBase< BaseFloat > &  in,
CuMatrix< BaseFloat > *  out 
)
inline

Perform forward-pass propagation 'in' -> 'out',.

Definition at line 311 of file nnet-component.h.

References Component::GetType(), Component::input_dim_, KALDI_ERR, kaldi::kSetZero, CuMatrixBase< Real >::NumCols(), CuMatrixBase< Real >::NumRows(), Component::output_dim_, Component::PropagateFnc(), CuMatrix< Real >::Resize(), and Component::TypeToMarker().

Referenced by Component::OutputDim(), kaldi::nnet1::UnitTestConvolutionalComponent3x3(), kaldi::nnet1::UnitTestConvolutionalComponentUnity(), kaldi::nnet1::UnitTestDropoutComponent(), kaldi::nnet1::UnitTestLengthNorm(), kaldi::nnet1::UnitTestMaxPoolingComponent(), and kaldi::nnet1::UnitTestSimpleSentenceAveragingComponent().

312  {
313  // Check the dims
314  if (input_dim_ != in.NumCols()) {
315  KALDI_ERR << "Non-matching dims on the input of " << TypeToMarker(GetType())
316  << " component. The input-dim is " << input_dim_
317  << ", the data had " << in.NumCols() << " dims.";
318  }
319  // Allocate target buffer
320  out->Resize(in.NumRows(), output_dim_, kSetZero); // reset
321  // Call the propagation implementation of the component
322  PropagateFnc(in, out);
323 }
int32 input_dim_
Data members,.
static const char * TypeToMarker(ComponentType t)
Converts component type to marker,.
#define KALDI_ERR
Definition: kaldi-error.h:147
int32 output_dim_
Dimension of the output of the Component,.
virtual void PropagateFnc(const CuMatrixBase< BaseFloat > &in, CuMatrixBase< BaseFloat > *out)=0
Abstract interface for propagation/backpropagation.
virtual ComponentType GetType() const =0
Get Type Identification of the component,.

◆ PropagateFnc()

◆ Read()

Component * Read ( std::istream &  is,
bool  binary 
)
static

Read the component from a stream (static method),.

Definition at line 224 of file nnet-component.cc.

References kaldi::ExpectToken(), Component::MarkerToType(), Component::NewComponentOfType(), kaldi::Peek(), kaldi::PeekToken(), kaldi::ReadBasicType(), Component::ReadData(), and kaldi::ReadToken().

Referenced by Component::OutputDim(), Nnet::Read(), and kaldi::nnet1::ReadComponentFromString().

224  {
225  int32 dim_out, dim_in;
226  std::string token;
227 
228  int first_char = Peek(is, binary);
229  if (first_char == EOF) return NULL;
230 
231  ReadToken(is, binary, &token);
232  // Skip the optional initial token,
233  if (token == "<Nnet>") {
234  ReadToken(is, binary, &token);
235  }
236  // Network ends after terminal token appears,
237  if (token == "</Nnet>") {
238  return NULL;
239  }
240 
241  // Read the dims,
242  ReadBasicType(is, binary, &dim_out);
243  ReadBasicType(is, binary, &dim_in);
244 
245  // Create the component,
246  Component *ans = NewComponentOfType(MarkerToType(token), dim_in, dim_out);
247 
248  // Read the content,
249  ans->ReadData(is, binary);
250 
251  // 'Eat' the component separtor (can be already consumed by 'ReadData(.)'),
252  if ('<' == Peek(is, binary) && '!' == PeekToken(is, binary)) {
253  ExpectToken(is, binary, "<!EndOfComponent>");
254  }
255 
256  return ans;
257 }
void ReadBasicType(std::istream &is, bool binary, T *t)
ReadBasicType is the name of the read function for bool, integer types, and floating-point types...
Definition: io-funcs-inl.h:55
Component(int32 input_dim, int32 output_dim)
Generic interface of a component,.
kaldi::int32 int32
void ReadToken(std::istream &is, bool binary, std::string *str)
ReadToken gets the next token and puts it in str (exception on failure).
Definition: io-funcs.cc:154
int Peek(std::istream &is, bool binary)
Peek consumes whitespace (if binary == false) and then returns the peek() value of the stream...
Definition: io-funcs.cc:145
void ExpectToken(std::istream &is, bool binary, const char *token)
ExpectToken tries to read in the given token, and throws an exception on failure. ...
Definition: io-funcs.cc:191
static ComponentType MarkerToType(const std::string &s)
Converts marker to component type (case insensitive),.
int PeekToken(std::istream &is, bool binary)
PeekToken will return the first character of the next token, or -1 if end of file.
Definition: io-funcs.cc:170
static Component * NewComponentOfType(ComponentType t, int32 input_dim, int32 output_dim)
Private members (descending classes cannot call this),.

◆ ReadData()

◆ TypeToMarker()

const char * TypeToMarker ( ComponentType  t)
static

Converts component type to marker,.

Definition at line 84 of file nnet-component.cc.

References rnnlm::i, KALDI_ERR, Component::key_value::key, and Component::kMarkerMap.

Referenced by CopyComponent::BackpropagateFnc(), Nnet::Check(), kaldi::ConvertComponent(), Nnet::Info(), Nnet::InfoBackPropagate(), Nnet::InfoGradient(), Nnet::InfoPropagate(), main(), Component::NewComponentOfType(), Component::Propagate(), Component::Write(), and Rbm::WriteAsNnet().

84  {
85  // Retuns the 1st '<string>' corresponding to the type in 'kMarkerMap',
86  int32 N = sizeof(kMarkerMap) / sizeof(kMarkerMap[0]);
87  for (int i = 0; i < N; i++) {
88  if (kMarkerMap[i].key == t) return kMarkerMap[i].value;
89  }
90  KALDI_ERR << "Unknown type : " << t;
91  return NULL;
92 }
kaldi::int32 int32
static const struct key_value kMarkerMap[]
The table with pairs of Component types and markers (defined in nnet-component.cc),.
#define KALDI_ERR
Definition: kaldi-error.h:147

◆ Write()

void Write ( std::ostream &  os,
bool  binary 
) const

Write the component to a stream,.

Definition at line 260 of file nnet-component.cc.

References Component::GetType(), Component::InputDim(), Component::OutputDim(), Component::TypeToMarker(), kaldi::WriteBasicType(), Component::WriteData(), and kaldi::WriteToken().

Referenced by Component::OutputDim().

260  {
262  WriteBasicType(os, binary, OutputDim());
263  WriteBasicType(os, binary, InputDim());
264  if (!binary) os << "\n";
265  this->WriteData(os, binary);
266  WriteToken(os, binary, "<!EndOfComponent>"); // Write component separator.
267  if (!binary) os << "\n";
268 }
static const char * TypeToMarker(ComponentType t)
Converts component type to marker,.
int32 InputDim() const
Get the dimension of the input,.
virtual void WriteData(std::ostream &os, bool binary) const
Writes the component content.
void WriteToken(std::ostream &os, bool binary, const char *token)
The WriteToken functions are for writing nonempty sequences of non-space characters.
Definition: io-funcs.cc:134
virtual ComponentType GetType() const =0
Get Type Identification of the component,.
void WriteBasicType(std::ostream &os, bool binary, T t)
WriteBasicType is the name of the write function for bool, integer types, and floating-point types...
Definition: io-funcs-inl.h:34
int32 OutputDim() const
Get the dimension of the output,.

◆ WriteData()

Member Data Documentation

◆ input_dim_

◆ kMarkerMap

const struct key_value kMarkerMap[]
static

The table with pairs of Component types and markers (defined in nnet-component.cc),.

Definition at line 95 of file nnet-component.h.

Referenced by Component::MarkerToType(), and Component::TypeToMarker().

◆ output_dim_


The documentation for this class was generated from the following files: