📄 testlda.cc
字号:
const char *help = "\testLDA (c) Sebastien Marcel 2003\n\\n\This program projects data into LDA sub-space\n";#include "FileBinDataSet.h"#include "LDATrainer.h"#include "FileListCmdOption.h"#include "CmdLine.h"using namespace Torch; int main(int argc, char **argv){ int n_inputs; char *model_file; real variance; bool verbose; Allocator *allocator = new Allocator; DiskXFile::setLittleEndianMode(); //=================== The command-line ========================== FileListCmdOption filelist("file name", "the list files or one data file"); filelist.isArgument(true); // Construct the command line CmdLine cmd; //cmd.setBOption("write log", false); // Put the help line at the beginning cmd.info(help); cmd.addText("\nArguments:"); cmd.addSCmdArg("model_file", &model_file, "model file"); cmd.addCmdOption(&filelist); cmd.addICmdArg("n_inputs", &n_inputs, "input dimension of the data"); cmd.addText("\nOptions:"); cmd.addBCmdOption("-verbose", &verbose, false, "verbose"); cmd.addRCmdOption("-variance", &variance, -1.0, "variance"); // Read the command line cmd.read(argc, argv); // if(verbose) { print(" + n_filenames = %d\n", filelist.n_files); for(int i = 0 ; i < filelist.n_files ; i++) print(" filename[%d] = %s\n", i, filelist.file_names[i]); } // // The LDA Machine LDAMachine *lda_machine = NULL; lda_machine = new(allocator) LDAMachine(n_inputs); // print("Loading LDA model: %s ...\n", model_file); DiskXFile *file = NULL; file = new DiskXFile(model_file, "r"); lda_machine->loadXFile(file); delete file; // lda_machine->setIOption("verbose_level", 2); lda_machine->setROption("variance", variance); lda_machine->init(); // // Load all the data in the same dataset FileBinDataSet *bindata = new(allocator) FileBinDataSet(filelist.file_names, filelist.n_files, n_inputs); bindata->info(false); // // Projects data into LDA sub-space real *realinput = NULL; Sequence *seq; realinput = new real [n_inputs]; seq = new Sequence(&realinput, 1, n_inputs); for(int i=0; i< bindata->n_examples; i++) { if(verbose) print("[%d]:\n", i); // bindata->setExample(i); if(verbose) print(" Input = [%2.3f %2.3f %2.3f ...]\n", bindata->inputs->frames[0][0], bindata->inputs->frames[0][1], bindata->inputs->frames[0][2]); // bindata->inputs->copyTo(realinput); if(verbose) print(" Seq = [%2.3f %2.3f %2.3f ...]\n", realinput[0], realinput[1], realinput[2]); // lda_machine->forward(seq); if(verbose) print(" Output = [%2.3f %2.3f %2.3f ...]\n", lda_machine->outputs->frames[0][0], lda_machine->outputs->frames[0][1], lda_machine->outputs->frames[0][2]); } // delete [] realinput; delete seq; delete allocator; return(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -