From 05c41075d0018ca6142f7ba593742fbadfecdf65 Mon Sep 17 00:00:00 2001 From: Patrick Simianer Date: Wed, 27 Jul 2011 00:03:35 +0200 Subject: hacking in weights setting, getting --- utils/fdict.h | 4 ++++ utils/weights.cc | 18 ++++++++++++++++++ utils/weights.h | 4 ++++ 3 files changed, 26 insertions(+) (limited to 'utils') diff --git a/utils/fdict.h b/utils/fdict.h index f9673023..70315a38 100644 --- a/utils/fdict.h +++ b/utils/fdict.h @@ -11,6 +11,10 @@ struct FD { static void Freeze() { frozen_ = true; } + static void UnFreeze() { + frozen_ = false; + } + static inline int NumFeats() { return dict_.max() + 1; } diff --git a/utils/weights.cc b/utils/weights.cc index b994a2fe..6b7e58ed 100644 --- a/utils/weights.cc +++ b/utils/weights.cc @@ -88,3 +88,21 @@ void Weights::InitFromVector(const SparseVector& w) { for (int i = 1; i < FD::NumFeats(); ++i) wv_[i] = w.value(i); } + +void Weights::SetWeight(SparseVector* v, const string fname, const double w) { + WordID fid = FD::Convert(fname); + cout << "fid " << fid << endl; + SetWeight(v, fid, w); +} + +void Weights::SetWeight(SparseVector* v, const WordID fid, const double w) { + wv_.resize(FD::NumFeats(), 0.0); + wv_[fid] = w; + //v->set_value(fid, w); +} + +void Weights::sz() +{ + cout << "wv_.size() " << wv_.size() << endl; +} + diff --git a/utils/weights.h b/utils/weights.h index cc20283c..86701add 100644 --- a/utils/weights.h +++ b/utils/weights.h @@ -15,6 +15,10 @@ class Weights { void InitSparseVector(SparseVector* w) const; void InitFromVector(const std::vector& w); void InitFromVector(const SparseVector& w); + void SetWeight(SparseVector* v, const std::string f, const double w); + void SetWeight(SparseVector* v, const WordID fid, const double w); + std::vector* getw() { return &wv_; }; // probably a hack + void sz(); private: std::vector wv_; }; -- cgit v1.2.3