Skip to content
Snippets Groups Projects
Commit 05217688 authored by Franck Dary's avatar Franck Dary
Browse files

macaon is now one executable

parent a0af9039
No related branches found
No related tags found
No related merge requests found
......@@ -32,6 +32,7 @@ include_directories(reading_machine/include)
include_directories(torch_modules/include)
include_directories(trainer/include)
include_directories(decoder/include)
include_directories(macaon/include)
include_directories(utf8)
add_subdirectory(fmt)
......@@ -40,4 +41,5 @@ add_subdirectory(reading_machine)
add_subdirectory(torch_modules)
add_subdirectory(trainer)
add_subdirectory(decoder)
add_subdirectory(macaon)
......@@ -2,9 +2,5 @@ FILE(GLOB SOURCES src/*.cpp)
add_library(decoder STATIC ${SOURCES})
target_link_libraries(decoder reading_machine)
target_link_libraries(decoder Boost)
add_executable(macaon_decode src/macaon_decode.cpp)
target_link_libraries(macaon_decode Boost)
target_link_libraries(macaon_decode decoder)
target_link_libraries(macaon_decode common)
install(TARGETS macaon_decode DESTINATION bin)
#ifndef MACAONDECODE__H
#define MACAONDECODE__H
#include <boost/program_options.hpp>
namespace po = boost::program_options;
class MacaonDecode
{
private :
int argc;
char ** argv;
private :
po::options_description getOptionsDescription();
po::variables_map checkOptions(po::options_description & od);
public :
int main();
MacaonDecode(int argc, char ** argv);
};
#endif
#include <boost/program_options.hpp>
#include "MacaonDecode.hpp"
#include <filesystem>
#include "util.hpp"
#include "Decoder.hpp"
namespace po = boost::program_options;
po::options_description getOptionsDescription()
po::options_description MacaonDecode::getOptionsDescription()
{
po::options_description desc("Command-Line Arguments ");
......@@ -31,7 +29,7 @@ po::options_description getOptionsDescription()
return desc;
}
po::variables_map checkOptions(po::options_description & od, int argc, char ** argv)
po::variables_map MacaonDecode::checkOptions(po::options_description & od)
{
po::variables_map vm;
......@@ -60,10 +58,10 @@ po::variables_map checkOptions(po::options_description & od, int argc, char ** a
return vm;
}
int main(int argc, char * argv[])
int MacaonDecode::main()
{
auto od = getOptionsDescription();
auto variables = checkOptions(od, argc, argv);
auto variables = checkOptions(od);
std::filesystem::path modelPath(variables["model"].as<std::string>());
auto machinePath = modelPath / ReadingMachine::defaultMachineFilename;
......@@ -97,3 +95,7 @@ int main(int argc, char * argv[])
return 0;
}
MacaonDecode::MacaonDecode(int argc, char ** argv) : argc(argc), argv(argv)
{
}
FILE(GLOB SOURCES src/*.cpp)
add_executable(macaon src/macaon.cpp)
target_link_libraries(macaon trainer)
target_link_libraries(macaon decoder)
install(TARGETS macaon DESTINATION bin)
#include "MacaonTrain.hpp"
#include "MacaonDecode.hpp"
void printUsageAndExit(char * argv[])
{
fmt::print(stderr, "USAGE : {} (train | decode)\n", argv[0]);
exit(1);
}
int main(int argc, char * argv[])
{
if (argc < 2)
printUsageAndExit(argv);
if (argv[1] == std::string("train"))
{
MacaonTrain program(argc-1, argv+1);
return program.main();
}
else if (argv[1] == std::string("decode"))
{
MacaonDecode program(argc-1, argv+1);
return program.main();
}
else
printUsageAndExit(argv);
return 0;
}
......@@ -3,10 +3,4 @@ FILE(GLOB SOURCES src/*.cpp)
add_library(trainer STATIC ${SOURCES})
target_link_libraries(trainer reading_machine)
target_link_libraries(trainer torch_modules)
add_executable(macaon_train src/macaon_train.cpp)
target_link_libraries(macaon_train Boost)
target_link_libraries(macaon_train trainer)
target_link_libraries(macaon_train decoder)
target_link_libraries(macaon_train common)
install(TARGETS macaon_train DESTINATION bin)
target_link_libraries(trainer Boost)
#ifndef MACAONTRAIN__H
#define MACAONTRAIN__H
#include <boost/program_options.hpp>
#include "Trainer.hpp"
#include "Decoder.hpp"
namespace po = boost::program_options;
class MacaonTrain
{
private :
int argc;
char ** argv;
private :
po::options_description getOptionsDescription();
po::variables_map checkOptions(po::options_description & od);
void fillDicts(ReadingMachine & rm, const Config & config);
public :
MacaonTrain(int argc, char ** argv);
int main();
};
#endif
#include <boost/program_options.hpp>
#include "MacaonTrain.hpp"
#include <filesystem>
#include "util.hpp"
#include "Trainer.hpp"
#include "Decoder.hpp"
#include "NeuralNetwork.hpp"
namespace po = boost::program_options;
po::options_description getOptionsDescription()
po::options_description MacaonTrain::getOptionsDescription()
{
po::options_description desc("Command-Line Arguments ");
......@@ -40,7 +38,7 @@ po::options_description getOptionsDescription()
return desc;
}
po::variables_map checkOptions(po::options_description & od, int argc, char ** argv)
po::variables_map MacaonTrain::checkOptions(po::options_description & od)
{
po::variables_map vm;
......@@ -61,7 +59,7 @@ po::variables_map checkOptions(po::options_description & od, int argc, char ** a
return vm;
}
void fillDicts(ReadingMachine & rm, const Config & config)
void MacaonTrain::fillDicts(ReadingMachine & rm, const Config & config)
{
static std::vector<std::string> interestingColumns{"FORM", "LEMMA"};
......@@ -77,10 +75,10 @@ void fillDicts(ReadingMachine & rm, const Config & config)
}
}
int main(int argc, char * argv[])
int MacaonTrain::main()
{
auto od = getOptionsDescription();
auto variables = checkOptions(od, argc, argv);
auto variables = checkOptions(od);
std::filesystem::path modelPath(variables["model"].as<std::string>());
auto machinePath = modelPath / "machine.rm";
......@@ -173,3 +171,7 @@ int main(int argc, char * argv[])
return 0;
}
MacaonTrain::MacaonTrain(int argc, char ** argv) : argc(argc), argv(argv)
{
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment