28 int main(
int argc, 
char *argv[]) {
    30     using namespace kaldi;
    33     typedef kaldi::int64 int64;
    36         "This program first identifies any affine or block affine layers that\n"    37         "are followed by pnorm and then renormalize layers. Then it rescales\n"    38         "those layers such that the parameter stddev is 1.0 after scaling\n"    39         "(the target stddev is configurable by the --stddev option).\n"    40         "If you supply the option --stddev-from=<model-filename>, it rescales\n"    41         "those layers to match the standard deviations of corresponding layers\n"    42         "in the specified model.\n"    44         "Usage: nnet-normalize-stddev [options] <model-in> <model-out>\n"    45         " e.g.: nnet-normalize-stddev final.mdl final.mdl\n";
    47     bool binary_write = 
true;
    49     std::string reference_model_filename;
    52     po.
Register(
"binary", &binary_write, 
"Write output in binary mode");
    53     po.
Register(
"stddev-from", &reference_model_filename, 
"Reference model");
    54     po.
Register(
"stddev", &stddev, 
"Target standard deviation that we normalize "    55                 "to (note: is overridden by --stddev-from option, if supplied)");
    64     std::string nnet_rxfilename = po.
GetArg(1),
    65         normalized_nnet_rxfilename = po.
GetArg(2);
    71       Input ki(nnet_rxfilename, &binary_read);
    80     std::vector<int32> identified_components;
    90       if (ac == NULL && bac == NULL)
   104       if (nc == NULL && pwc == NULL)
   116       identified_components.push_back(c);
   120     if (!reference_model_filename.empty()) {
   122       Input ki(reference_model_filename, &binary_read);
   131     for (int32 c = 0; c < identified_components.size(); c++) {
   133       if (!reference_model_filename.empty()) {
   142         params.Add(-1.0 * params_average);
   143         ref_stddev = sqrt(
VecVec(params, params)
   144             / static_cast<BaseFloat>(params.Dim()));
   155       params.Add(-1.0 * params_average);
   157           / static_cast<BaseFloat>(params.Dim()));
   158       if (params_stddev > 0.0) {
   159         uc->
Scale(ref_stddev / params_stddev);
   160         KALDI_LOG << 
"Normalized component " << identified_components[c];
   165     Output ko(normalized_nnet_rxfilename, binary_write);
   170   } 
catch(
const std::exception &e) {
   171     std::cerr << e.what() << 
'\n';
 This code computes Goodness of Pronunciation (GOP) and extracts phone-level pronunciation feature for...
 
const Component & GetComponent(int32 c) const
 
virtual void Scale(BaseFloat scale)=0
This new virtual function scales the parameters by this amount. 
 
void PrintUsage(bool print_command_line=false)
Prints the usage documentation [provided in the constructor]. 
 
Abstract class, basic element of the network, it is a box with defined inputs, outputs, and tranformation functions interface. 
 
void Read(std::istream &is, bool binary)
 
virtual void Vectorize(VectorBase< BaseFloat > *params) const
Turns the parameters into vector form. 
 
void Register(const std::string &name, bool *ptr, const std::string &doc)
 
int32 NumComponents() const
Returns number of components– think of this as similar to # of layers, but e.g. 
 
The class ParseOptions is for parsing command-line options; see Parsing command-line options for more...
 
Take the absoute values of an input vector to a power. 
 
void Read(std::istream &is, bool binary)
 
void Write(std::ostream &os, bool binary) const
 
int Read(int argc, const char *const *argv)
Parses the command line options and fills the ParseOptions-registered variables. 
 
std::string GetArg(int param) const
Returns one of the positional parameters; 1-based indexing for argc/argv compatibility. 
 
int NumArgs() const
Number of positional parameters (c.f. argc-1). 
 
virtual int32 GetParameterDim() const
The following new virtual function returns the total dimension of the parameters in this class...
 
void Write(std::ostream &os, bool binary) const
 
A class representing a vector. 
 
#define KALDI_ASSERT(cond)
 
int main(int argc, char *argv[])
 
Real VecVec(const VectorBase< Real > &a, const VectorBase< Real > &b)
Returns dot product between v1 and v2. 
 
const Nnet & GetNnet() const
 
Class UpdatableComponent is a Component which has trainable parameters and contains some global param...