CVMArgumentParser::CVMArgumentParser(int argc, const char** argv, bool requireCalib, bool requireOutputPath, bool requireInputPath, bool requireSize){
     // make a new ArgumentParser
    ArgumentParser parser;
    parser.addArgument("-c", "--calib_file", 1, !requireCalib);
    parser.addArgument("-d", "--devices", 1, true);
    parser.addArgument("-h", "--height", 1, !requireSize);
    parser.addArgument("-w", "--width", 1, !requireSize);
    parser.addArgument("-o", "--output", 1, !requireOutputPath);
    parser.addArgument("-i", "--input", 1, !requireInputPath);
    parser.addArgument("-s", "--saveData", 1, true);
    parser.addArgument("-v", "--saveVideo", 1, true);
    parser.addArgument("-t", "--debugTiming", 1, true);
    parser.addArgument("-q", "--quiet", 1, true);
    parser.parse(argc, argv);

    outputpath = parser.retrieve<string>("o");
    
    inputpath = parser.retrieve<string>("i");
    
    calib_file_path = parser.retrieve<string>("c");
    cout << calib_file_path << endl;

    deviceID = "/dev/video0";
    string devicestring = parser.retrieve<string>("d");
    if (devicestring.length() != 0)
        deviceID = devicestring;
    
    height = 960;
    string heightstring = parser.retrieve<string>("h");
    if (heightstring.length() != 0)
        height =stoi(heightstring);

    width = 1280;
    string widthstring = parser.retrieve<string>("w");
    if (widthstring.length() != 0)
        width =stoi(widthstring);

    saveData = false;
    string saveDatastr = parser.retrieve<string>("s");
    if (saveDatastr.length() != 0)
        saveData =(stoi(saveDatastr) == 1);

    saveVideo = false;
    string saveVideostr = parser.retrieve<string>("v");
    if (saveVideostr.length() != 0)
        saveVideo =(stoi(saveVideostr) == 1);
    
    saveTiming = false;
    string saveTimingstr = parser.retrieve<string>("t");
    if (saveTimingstr.length() != 0)
        saveTiming =(stoi(saveTimingstr) == 1);

    quiet = false;
    string quietstr = parser.retrieve<string>("q");
    if (quietstr.length() != 0)
        quiet =(stoi(quietstr) == 1);
}
Пример #2
0
int main(int argc, char *argv[])
{
    ArgumentParser parser;
    parser.addArgument("-i", "--input", 1, false);
    parser.parse(argc, argv);
    TApplication *myapp = new TApplication("App", &argc, argv);
    fit(parser.retrieve<string>("i"));
    myapp->Run();
}
Пример #3
0
int main(int argc, char **argv)
{
    ArgumentParser parser;
    parser.addArgument("-i", "--input", 1, false);
    parser.addArgument("-t", "--tree", 1, true);
    parser.addArgument("-b", "--branch", 1, false);
    parser.addArgument("-f", "--filter", 1, true);
    parser.addArgument("--hits_name", 1, true);
    parser.addArgument("--hits_bins", 1, true);
    parser.addArgument("--hist-start", 1, true);
    parser.addArgument("--hist-end", 1, true);
    parser.addArgument("--fit-start", 1, true);
    parser.addArgument("--fit-end", 1, true);
    parser.addArgument("-o", "--output", 1, false);

    parser.parse(argc, argv);
    Fit *fit;
    if (parser.count("tree"))
        fit = new Fit(parser.retrieve<string>("input"), parser.retrieve<string>("tree"));
    else
        fit = new Fit(parser.retrieve<string>("input"));
    if (parser.count("hist-start"))
        fit->hist_start = stod(parser.retrieve<string>("hist-start"));
    if (parser.count("hist-end"))
        fit->hist_start = stod(parser.retrieve<string>("hist-end"));
    if (parser.count("fit-start"))
        fit->hist_start = stod(parser.retrieve<string>("fit-start"));
    if (parser.count("fit-end"))
        fit->hist_start = stod(parser.retrieve<string>("fit-end"));
    if (parser.count("hits_bins"))
        fit->hist_bins = stoi(parser.retrieve<string>("hits_bins"));
    if (parser.count("hits_name"))
        fit->create_hist(parser.retrieve<string>("hist_name"));
    else
        fit->create_hist();
    if (parser.count("filter"))
        fit->load(parser.retrieve<string>("branch"), parser.retrieve<string>("filter"));
    else
        fit->load(parser.retrieve<string>("branch"));
    fit->process(parser.retrieve<string>("output"));
}
Пример #4
0
int main(int argc, char** argv)
{
    sofa::simulation::tree::init();
    sofa::component::initComponentBase();
    sofa::component::initComponentCommon();

    bool showHelp = false;
    unsigned int idExample = 0;
    ArgumentParser* argParser = new ArgumentParser(argc, argv);
    argParser->addArgument(po::value<bool>(&showHelp)->default_value(false)->implicit_value(true),                  "help,h", "Display this help message");
    argParser->addArgument(po::value<unsigned int>(&idExample)->default_value(0)->notifier([](unsigned int value)
    {
        if (value < 0 || value > 9) {
            std::cerr << "Example Number to enter from (0 - 9), current value: " << value << std::endl;
            exit( EXIT_FAILURE );
        }
    }),                                                                                                             "example,e", "Example Number to enter from (0 - 9)");

    argParser->parse();

    if(showHelp)
    {
        argParser->showHelp();
        exit( EXIT_SUCCESS );
    }

    // init GUI
    sofa::gui::initMain();
    sofa::gui::GUIManager::Init(argv[0]);

    // Create simulation tree
    sofa::simulation::setSimulation(new sofa::simulation::tree::TreeSimulation());


    // Create the graph root node with collision
    sofa::simulation::Node::SPtr root = sofa::modeling::createRootWithCollisionPipeline();
    root->setGravity( sofa::defaulttype::Vec3Types::Deriv(0,-10.0,0) );


    // Create scene example (depends on user input)
    switch (idExample)
    {
    case 0:
        fallingCubeExample(root);
        break;
    case 1:
        fallingCylinderExample(root);
        break;
    case 2:
        fallingSphereExample(root);
        break;
    case 3:
        fallingDrapExample(root);
        break;
    default:
        fallingCubeExample(root);
        break;
    }


    root->setAnimate(false);

    sofa::simulation::getSimulation()->init(root.get());

    //=======================================
    // Run the main loop
    sofa::gui::GUIManager::MainLoop(root);

    sofa::simulation::tree::cleanup();

    return 0;
}
Пример #5
0
int main(int argc, const char** argv) {
	
    // Load the command line config
    
    ArgumentParser parser;
        
    parser.addArgument("-e", "--epochs", 1);
    parser.addArgument("-s", "--seed", 1);
    parser.addArgument("-l", "--layers", 1);
    parser.addArgument("-S", "--samples", 1);
    parser.addArgument("-c", "--corpus", 1);
    parser.addArgument("--nlayers", 1);
    parser.addArgument("--ifbradius", 1);
    parser.addArgument("--lw", 1);
    parser.addArgument("--lh", 1);
    parser.addArgument("--ssize", 1);
    parser.addArgument("--sseednoise", 1);
    parser.addArgument("--sprednoise", 1);
    
    parser.parse(argc, argv);
    
	// RNG
    unsigned int seed = std::atoi(parser.retrieve("seed", std::to_string(time(nullptr))).c_str());
	std::mt19937 generator(seed);

	std::uniform_real_distribution<float> dist01(0.0f, 1.0f);
    
	// ---------------------------------- Load the Corpus ----------------------------------
	std::string corpusPath = parser.retrieve("corpus", "corpus.txt");
	std::ifstream fromFile(corpusPath);

	fromFile.seekg(0, std::ios::end);
	size_t size = fromFile.tellg();
	std::string test(size, ' ');
	fromFile.seekg(0);
	fromFile.read(&test[0], size);
	
	// ---------------------------------- Find Character Set ----------------------------------
	
	VectorCodec textcodec(test);
	int numInputs = textcodec.N;
	int inputsRoot = std::ceil(std::sqrt(static_cast<float>(numInputs)));
	
	// ---------------------------------- Create Hierarchy ----------------------------------
	
	// Fill out layer descriptions
	int nLayers = std::atoi(parser.retrieve("nlayers", "3").c_str());
	int layerW = std::atoi(parser.retrieve("lw", "16").c_str());
	int layerH = std::atoi(parser.retrieve("lh", "16").c_str());
	int inFeedBackRadius = std::atoi(parser.retrieve("ifbradius", "16").c_str());
	
	std::vector<neo::PredictiveHierarchy::LayerDesc> layerDescs(nLayers);
	
	for (int i = 0; i < nLayers; i++) {
		layerDescs[i]._width = layerW;
		layerDescs[i]._height = layerH;
	}
	
	neo::PredictiveHierarchy ph;
	
	ph.createRandom(inputsRoot, inputsRoot, inFeedBackRadius, layerDescs, -0.01f, 0.01f, 0.01f, 0.05f, 0.1f, generator);
	
	// ---------------------------------- Iterate Over Corpus ----------------------------------
    int numEpochs = std::atoi(parser.retrieve("epochs", "10").c_str());
    int numSamples = std::atoi(parser.retrieve("samples", "10").c_str());
    int sampleSize = std::atoi(parser.retrieve("ssize", std::to_string(test.length())).c_str());
    float sampleSeedNoise = std::atof(parser.retrieve("sseednoise", "0.5").c_str());
    float samplePredNoise = std::atof(parser.retrieve("sprednoise", "0.05").c_str());
    
    std::cout << "NeoRL text prediction experiment" << std::endl;
    std::cout << "Corpus: " << corpusPath << " size: " << test.length() << " alphabet size: " << textcodec.nSymbols << std::endl;
    std::cout << "Model: nLayers: " << nLayers << " layerW: " << layerW << " layerH: " << layerH << " inFeedbackRadius: " << inFeedBackRadius 
			  << " input: " << inputsRoot << "x" << inputsRoot << std::endl;
	std::cout << "Training: epochs: " << numEpochs << std::endl;
	std::cout << "Sampling: samples: " << numSamples << " size: " << sampleSize << " seed noise: " << sampleSeedNoise << " pred noise " << samplePredNoise << std::endl;    
    std::cout << "--[ Start training ]--" << std::endl;
    
    train(ph, generator, test, numEpochs, textcodec);
    
    std::cout << "--[ Start sampling ]--" << std::endl;
    for (int i = 0; i < numSamples; i++) {
        sample(ph, generator, textcodec.getRandomSymbol(generator), sampleSize, textcodec, sampleSeedNoise, samplePredNoise);
    }
    
	return 0;
}