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