summaryrefslogtreecommitdiff
path: root/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp88
1 files changed, 52 insertions, 36 deletions
diff --git a/main.cpp b/main.cpp
index d23ded2..8d5b393 100644
--- a/main.cpp
+++ b/main.cpp
@@ -13,42 +13,58 @@ namespace po = boost::program_options;
po::variables_map vm;
-int train()
-{
- RSVM* rsvm;
- rsvm=RSVM::loadModel(vm["model"].as<std::string>().c_str());
- FileDP dp(vm["feature"].as<std::string>().c_str());
- rsvm->train(dp);
- rsvm->predict(dp);
- rsvm->saveModel(vm["output"].as<std::string>().c_str());
- delete rsvm;
- return 0;
+int train() {
+ RSVM *rsvm;
+ rsvm = RSVM::loadModel(vm["model"].as<std::string>().c_str());
+ FileDP dp(vm["feature"].as<std::string>().c_str());
+ rsvm->train(dp);
+ rsvm->saveModel(vm["output"].as<std::string>().c_str());
+ delete rsvm;
+ return 0;
}
-int main(int argc,char ** argv)
-{
- // Defining program options
- po::options_description desc("Allowed options");
- desc.add_options()
- ("help,h", "produce help message")
- ("model,m", po::value<std::string>()->default_value("test.m"), "set input model file")
- ("feature,i", po::value<std::string>()->default_value("test.f"), "set input feature file")
- ("output,o", po::value<std::string>()->default_value("test.m.out"), "set output model file")
- ;
-
- // Parsing program options
- po::store(po::parse_command_line(argc, argv, desc), vm);
- po::notify(vm);
-
- if (vm.count("help")) {
- std::cout << desc << "\n";
- return 1;
- }
-
- MatrixXd m(2,2);
- m(0,0) = 3;
- m(1,0) = 2.5;
- m(0,1) = -1;
- m(1,1) = m(1,0) + m(0,1);
- std::cout << m << std::endl;
+int predict() {
+ RSVM *rsvm;
+ rsvm = RSVM::loadModel(vm["model"].as<std::string>().c_str());
+ FileDP dp(vm["feature"].as<std::string>().c_str());
+ rsvm->predict(dp);
+ delete rsvm;
+ return 0;
+}
+
+int main(int argc, char **argv) {
+ // Defining program options
+ po::options_description desc("Allowed options");
+ desc.add_options()
+ ("help,h", "produce help message")
+ ("train,T", "training model")
+ ("validate,V", "validate model")
+ ("predict,P", "use model for prediction")
+ ("model,m", po::value<std::string>(), "set input model file")
+ ("output,o", po::value<std::string>(), "set output model file")
+ ("feature,i", po::value<std::string>(), "set input feature file");
+
+ // Parsing program options
+ po::store(po::parse_command_line(argc, argv, desc), vm);
+ po::notify(vm);
+
+ // Print help if necessary
+ if (vm.count("help") || !(vm.count("train") || vm.count("validate") || vm.count("predict"))) {
+ std::cout << desc;
+ return 0;
+ }
+
+ if (vm.count("train")) {
+ LOG(INFO) << "Program option: training";
+ train();
+ }
+ else if (vm.count("validate")) {
+ LOG(INFO) << "Program option: validate";
+ predict();
+ }
+ else if (vm.count("predict")) {
+ LOG(INFO) << "Program option: predict";
+ predict();
+ }
+ return 0;
}