Merge branch 'vw_integration' of github.com:moses-smt/mosesdecoder into vw_integration

This commit is contained in:
Marcin Junczys-Dowmunt 2015-01-06 13:56:19 +01:00
commit 12fe186164
4 changed files with 17 additions and 6 deletions

View File

@ -3,7 +3,6 @@
#ifdef HAVE_VW
#include "VWFeature.h"
#include "util/check.hh"
#include "moses/StaticData.h"
#include "moses/WordsRange.h"
#include "moses/Util.h"

View File

@ -46,8 +46,8 @@ private:
// Construct a ScoreComponentCollection with Classifier feature set to given score
ScoreComponentCollection ScoreFactory(float score) const;
// Build Classifier::Translation object from Moses structures
Classifier::Translation GetClassifierTranslation(const TranslationOption *option) const;
// Build Discriminative::Translation object from Moses structures
Discriminative::Translation GetClassifierTranslation(const TranslationOption *option) const;
static void NormalizeSquaredLoss(std::vector<float> &losses);
static void NormalizeLogisticLossBasic(std::vector<float> &losses);
@ -64,9 +64,9 @@ private:
}
std::vector<FactorType> m_tgtFactors; // which factors to use; XXX hard-coded for now
mutable Classifier::VWLibraryPredictConsumerFactory *m_consumerFactory; // XXX mutable
mutable Classifier::FeatureExtractor *m_extractor; // XXX mutable
Classifier::ExtractorConfig m_extractorConfig;
mutable Discriminative::VWLibraryPredictConsumerFactory *m_consumerFactory; // XXX mutable
mutable Discriminative::FeatureExtractor *m_extractor; // XXX mutable
Discriminative::ExtractorConfig m_extractorConfig;
void (*m_normalizer)(std::vector<float> &); // normalization function
std::string m_configFile, m_modelFile;
};

View File

@ -77,6 +77,9 @@ const size_t DEFAULT_VERBOSE_LEVEL = 1;
// output floats with five significant digits
static const size_t PRECISION = 3;
// tolerance for equality in floating point comparisons
const float FLOAT_EPSILON = 0.0001;
// enums.
// must be 0, 1, 2, ..., unless otherwise stated

View File

@ -483,6 +483,15 @@ T log_sum (T log_a, T log_b)
return ( v );
}
/**
* Compare floats for equality with some tolerance.
*/
inline bool Equals(float a, float b)
{
return fabs(a - b) < FLOAT_EPSILON;
}
/** Enforce rounding */
inline void FixPrecision(std::ostream& stream, size_t size = 3)
{