 
     size_t epochs = 1;
     size_t batches = 0;
-    while((options["after-epochs"].as<size_t>() == 0
-           || epochs <= options["after-epochs"].as<size_t>()) &&
-          (options["after-batches"].as<size_t>() == 0
-           || batches < options["after-batches"].as<size_t>())) {
+    while((options.get<size_t>("after-epochs") == 0
+           || epochs <= options.get<size_t>("after-epochs")) &&
+          (options.get<size_t>("after-batches") == 0
+           || batches < options.get<size_t>("after-batches"))) {
 
       batchGenerator->prepare();
 

  Config options(argc, argv);
  std::cerr << options << std::endl;

  auto dimVocabs = options["dim-vocabs"].as<std::vector<int>>();
  int dimEmb = options["dim-emb"].as<int>();
  int dimRnn = options["dim-rnn"].as<int>();
  int dimBatch = options["mini-batch"].as<int>();
  int dimMaxiBatch = options["maxi-batch"].as<int>();

  std::vector<int> dims = {
    dimVocabs[0], dimEmb, dimRnn,

        samples += batch->size();
        wordsDisp += batch->words();
        batches++;
        if(options.get<size_t>("after-batches")
           && batches >= options.get<size_t>("after-batches"))
          break;

        if(batches % options.get<size_t>("disp-freq") == 0) {
          std::stringstream ss;
          ss << "Ep. " << epochs
             << " : Up. " << batches
             << " : Sen. " << samples
             << " : Cost " << std::fixed << std::setprecision(2)
                           << costSum / options.get<size_t>("disp-freq")
             << " : Time " << timer.format(2, "%ws");

          float seconds = std::stof(timer.format(5, "%w"));
