27 int main(
int argc,
char *argv[]) {
29 using namespace kaldi;
32 typedef kaldi::int64 int64;
35 "Using a validation set, compute an optimal combination of a number of\n" 36 "neural nets (the combination weights are separate for each layer and\n" 37 "do not have to sum to one). The optimization is BFGS, which is initialized\n" 38 "from the best of the individual input neural nets (or as specified by\n" 41 "Usage: nnet-combine [options] <model-in1> <model-in2> ... <model-inN> <valid-examples-in> <model-out>\n" 44 " nnet-combine 1.1.nnet 1.2.nnet 1.3.nnet ark:valid.egs 2.nnet\n" 45 "Caution: the first input neural net must not be a gradient.\n";
47 bool binary_write =
true;
51 po.
Register(
"binary", &binary_write,
"Write output in binary mode");
63 nnet1_rxfilename = po.
GetArg(1),
71 Input ki(nnet1_rxfilename, &binary_read);
76 int32 num_nnets = po.
NumArgs() - 2;
77 std::vector<Nnet> nnets(num_nnets);
81 for (int32
n = 1;
n < num_nnets;
n++) {
86 trans_model.
Read(ki.Stream(), binary_read);
87 am_nnet.
Read(ki.Stream(), binary_read);
91 std::vector<NnetExample> validation_set;
96 valid_examples_rspecifier);
97 for (; !example_reader.
Done(); example_reader.
Next())
98 validation_set.push_back(example_reader.
Value());
99 KALDI_LOG <<
"Read " << validation_set.size() <<
" examples from the " 100 <<
"validation set.";
110 Output ko(nnet_wxfilename, binary_write);
115 KALDI_LOG <<
"Finished combining neural nets, wrote model to " 117 return (validation_set.size() == 0 ? 1 : 0);
118 }
catch(
const std::exception &e) {
119 std::cerr << e.what() <<
'\n';
This code computes Goodness of Pronunciation (GOP) and extracts phone-level pronunciation feature for...
int main(int argc, char *argv[])
void PrintUsage(bool print_command_line=false)
Prints the usage documentation [provided in the constructor].
void Read(std::istream &is, bool binary)
void Register(OptionsItf *opts)
void Register(const std::string &name, bool *ptr, const std::string &doc)
The class ParseOptions is for parsing command-line options; see Parsing command-line options for more...
void Read(std::istream &is, bool binary)
void Write(std::ostream &os, bool binary) const
A templated class for reading objects sequentially from an archive or script file; see The Table conc...
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.
Configuration class that controls neural net combination, where we combine a number of neural nets...
int NumArgs() const
Number of positional parameters (c.f. argc-1).
void Write(std::ostream &os, bool binary) const
#define KALDI_ASSERT(cond)
static void CombineNnets(const Vector< BaseFloat > &scale_params, const std::vector< Nnet > &nnets, Nnet *dest)
const Nnet & GetNnet() const