| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | #include <exception> |
| | #include <fstream> |
| | #include <sstream> |
| | #include <vector> |
| |
|
| | #include "util/usage.hh" |
| |
|
| | #ifdef WIN32 |
| | |
| | |
| | #endif |
| |
|
| | #include "moses/IOWrapper.h" |
| | #include "moses/Hypothesis.h" |
| | #include "moses/Manager.h" |
| | #include "moses/StaticData.h" |
| | #include "moses/TypeDef.h" |
| | #include "moses/Util.h" |
| | #include "moses/Timer.h" |
| | #include "moses/TranslationModel/PhraseDictionary.h" |
| | #include "moses/FF/StatefulFeatureFunction.h" |
| | #include "moses/FF/StatelessFeatureFunction.h" |
| | #include "moses/TrainingTask.h" |
| | #include "util/random.hh" |
| |
|
| | #ifdef HAVE_PROTOBUF |
| | #include "hypergraph.pb.h" |
| | #endif |
| |
|
| | using namespace std; |
| | using namespace Moses; |
| |
|
| | namespace Moses |
| | { |
| |
|
| | void OutputFeatureWeightsForHypergraph(std::ostream &outputSearchGraphStream) |
| | { |
| | outputSearchGraphStream.setf(std::ios::fixed); |
| | outputSearchGraphStream.precision(6); |
| | StaticData::Instance().GetAllWeights().Save(outputSearchGraphStream); |
| | } |
| |
|
| |
|
| | } |
| |
|
| | |
| | int main(int argc, char const** argv) |
| | { |
| | |
| | |
| |
|
| | try { |
| |
|
| | #ifdef HAVE_PROTOBUF |
| | GOOGLE_PROTOBUF_VERIFY_VERSION; |
| | #endif |
| |
|
| | |
| | IFVERBOSE(1) { |
| | TRACE_ERR("command: "); |
| | for(int i=0; i<argc; ++i) TRACE_ERR(argv[i]<<" "); |
| | TRACE_ERR(endl); |
| | } |
| |
|
| | |
| | FixPrecision(cout); |
| | FixPrecision(cerr); |
| |
|
| | |
| | |
| | Parameter params; |
| | if (!params.LoadParam(argc,argv)) { |
| | exit(1); |
| | } |
| |
|
| |
|
| | |
| | |
| | ResetUserTime(); |
| | if (!StaticData::LoadDataStatic(¶ms, argv[0])) { |
| | exit(1); |
| | } |
| |
|
| | |
| | if (params.isParamSpecified("show-weights")) { |
| | ShowWeights(); |
| | exit(0); |
| | } |
| |
|
| | |
| | const StaticData& staticData = StaticData::Instance(); |
| |
|
| |
|
| | |
| | util::rand_init(); |
| |
|
| | |
| | IFVERBOSE(1) { |
| | PrintUserTime("Created input-output object"); |
| | } |
| | AllOptions::ptr opts(new AllOptions(*StaticData::Instance().options())); |
| | boost::shared_ptr<IOWrapper> ioWrapper(new IOWrapper(*opts)); |
| | if (ioWrapper == NULL) { |
| | cerr << "Error; Failed to create IO object" << endl; |
| | exit(1); |
| | } |
| |
|
| | |
| | const ScoreComponentCollection& weights = staticData.GetAllWeights(); |
| | IFVERBOSE(2) { |
| | TRACE_ERR("The global weight vector looks like this: "); |
| | TRACE_ERR(weights); |
| | TRACE_ERR("\n"); |
| | } |
| |
|
| | #ifdef WITH_THREADS |
| | #pragma message ("Compiling with Threads.") |
| | ThreadPool pool(staticData.ThreadCount()); |
| | #endif |
| |
|
| | |
| |
|
| | boost::shared_ptr<ContextScope> scope(new ContextScope); |
| | boost::shared_ptr<InputType> source; |
| | while ((source = ioWrapper->ReadInput()) != NULL) { |
| | IFVERBOSE(1) { |
| | ResetUserTime(); |
| | } |
| |
|
| | |
| | boost::shared_ptr<TrainingTask> task; |
| | task = TrainingTask::create(source, ioWrapper, scope); |
| |
|
| | |
| | #ifdef WITH_THREADS |
| | pool.Submit(task); |
| | #else |
| | task->Run(); |
| | #endif |
| | } |
| |
|
| | |
| | #ifdef WITH_THREADS |
| | pool.Stop(true); |
| | #endif |
| |
|
| | FeatureFunction::Destroy(); |
| |
|
| | } catch (const std::exception &e) { |
| | std::cerr << "Exception: " << e.what() << std::endl; |
| | return EXIT_FAILURE; |
| | } |
| |
|
| | IFVERBOSE(1) util::PrintUsage(std::cerr); |
| |
|
| | #ifndef EXIT_RETURN |
| | |
| | exit(EXIT_SUCCESS); |
| | #else |
| | return EXIT_SUCCESS; |
| | #endif |
| | } |
| |
|