Skip to content
Snippets Groups Projects
dev.cpp 1.15 KiB
Newer Older
  • Learn to ignore specific revisions
  • Franck Dary's avatar
    Franck Dary committed
    #include <filesystem>
    
    #include "fmt/core.h"
    
    Franck Dary's avatar
    Franck Dary committed
    #include "util.hpp"
    
    #include "BaseConfig.hpp"
    #include "SubConfig.hpp"
    
    #include "TransitionSet.hpp"
    
    Franck Dary's avatar
    Franck Dary committed
    #include "Trainer.hpp"
    
    Franck Dary's avatar
    Franck Dary committed
    #include "Decoder.hpp"
    
    Franck Dary's avatar
    Franck Dary committed
    
    
    int main(int argc, char * argv[])
    
      if (argc != 5)
    
        fmt::print(stderr, "needs 4 arguments.\n");
        exit(1);
      }
    
    
    Franck Dary's avatar
    Franck Dary committed
      std::string model = argv[1];
    
      std::string mcdFile = argv[2];
      std::string tsvFile = argv[3];
      //std::string rawFile = argv[4];
      std::string rawFile = "";
    
    
    Franck Dary's avatar
    Franck Dary committed
      std::filesystem::path modelPath(model);
      auto machinePath = modelPath / "machine.rm";
    
      ReadingMachine machine(machinePath.string());
    
    
      BaseConfig goldConfig(mcdFile, tsvFile, rawFile);
      SubConfig config(goldConfig);
    
    
    Franck Dary's avatar
    Franck Dary committed
      Trainer trainer(machine);
      trainer.createDataset(config);
    
    Franck Dary's avatar
    Franck Dary committed
      Decoder decoder(machine);
    
    
    Franck Dary's avatar
    Franck Dary committed
      int nbEpoch = 10;
    
    Franck Dary's avatar
    Franck Dary committed
    
      for (int i = 0; i < nbEpoch; i++)
    
    Franck Dary's avatar
    Franck Dary committed
        float loss = trainer.epoch();
    
    Franck Dary's avatar
    Franck Dary committed
        auto devConfig = goldConfig;
        decoder.decode(devConfig, 1);
        decoder.evaluate(devConfig, modelPath, tsvFile);
        fmt::print(stderr, "\r{:80}\rEpoch {}/{} loss = {} dev = {}\n", " ", i+1, nbEpoch, loss, decoder.getF1Score("UPOS"));
    
    Franck Dary's avatar
    Franck Dary committed
      return 0;
    }