|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef MAIN_H_ |
|
#define MAIN_H_ |
|
|
|
#include <vector> |
|
|
|
#include "moses/ScoreComponentCollection.h" |
|
#include "moses/Word.h" |
|
#include "moses/FF/FeatureFunction.h" |
|
#include "Decoder.h" |
|
#include "util/random.hh" |
|
|
|
typedef std::map<const Moses::FeatureFunction*, std::vector< float > > ProducerWeightMap; |
|
typedef std::pair<const Moses::FeatureFunction*, std::vector< float > > ProducerWeightPair; |
|
|
|
template <class T> bool from_string(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&)) |
|
{ |
|
std::istringstream iss(s); |
|
return !(iss >> f >> t).fail(); |
|
} |
|
|
|
struct RandomIndex { |
|
ptrdiff_t operator()(ptrdiff_t max) { |
|
return util::rand_excl(max); |
|
} |
|
}; |
|
|
|
|
|
bool loadSentences(const std::string& filename, std::vector<std::string>& sentences); |
|
bool evaluateModulo(size_t shard_position, size_t mix_or_dump_base, size_t actual_batch_size); |
|
void printFeatureValues(std::vector<std::vector<Moses::ScoreComponentCollection> > &featureValues); |
|
void ignoreCoreFeatures(std::vector<std::vector<Moses::ScoreComponentCollection> > &featureValues, ProducerWeightMap &coreWeightMap); |
|
void takeLogs(std::vector<std::vector<Moses::ScoreComponentCollection> > &featureValues, size_t base); |
|
void deleteTranslations(std::vector<std::vector<const Moses::Word*> > &translations); |
|
void decodeHopeOrFear(size_t rank, size_t size, size_t decode, std::string decode_filename, std::vector<std::string> &inputSentences, Mira::MosesDecoder* decoder, size_t n, float bleuWeight); |
|
void applyLearningRates(std::vector<std::vector<Moses::ScoreComponentCollection> > &featureValues, float core_r0, float sparse_r0); |
|
void applyPerFeatureLearningRates(std::vector<std::vector<Moses::ScoreComponentCollection> > &featureValues, Moses::ScoreComponentCollection featureLearningRates, float sparse_r0); |
|
void scaleFeatureScore(const Moses::FeatureFunction *sp, float scaling_factor, std::vector<std::vector<Moses::ScoreComponentCollection> > &featureValues, size_t rank, size_t epoch); |
|
void scaleFeatureScores(const Moses::FeatureFunction *sp, float scaling_factor, std::vector<std::vector<Moses::ScoreComponentCollection> > &featureValues, size_t rank, size_t epoch); |
|
|
|
#endif |
|
|