wapiti 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/HISTORY.md +4 -0
- data/ext/wapiti/native.c +16 -25
- data/lib/wapiti/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f8e3f42f711858caf64ca6682ea3aea8d9439a02
|
|
4
|
+
data.tar.gz: 32569d35d3e6d2af1adf91df7a1a8d7ba996d198
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2ed36dbff7978ca5a731bc3381faad7b9fc362dcdd46ce0b7495dceacd6d21458a33bab5250ee71788d4b2e553625d3b39e61b4140ef701498f04742cf10d19c
|
|
7
|
+
data.tar.gz: d9e10608342bc351c88cbb61d37af504b983c3e5b973ee2a29919951987ec4d3a3919d98f053990300207820cf59ab297c80a6efb4806060999c0090079b9e39
|
data/HISTORY.md
CHANGED
data/ext/wapiti/native.c
CHANGED
|
@@ -29,20 +29,10 @@ VALUE cLogger;
|
|
|
29
29
|
int wapiti_main(int argc, char *argv[argc]);
|
|
30
30
|
|
|
31
31
|
void dolabel(mdl_t *mdl);
|
|
32
|
-
void dotrain(mdl_t *mdl);
|
|
33
|
-
void doupdt(mdl_t *mdl);
|
|
34
32
|
|
|
35
33
|
|
|
36
34
|
/* --- Utilities --- */
|
|
37
35
|
|
|
38
|
-
static void trn_auto(mdl_t *mdl) {
|
|
39
|
-
const int maxiter = mdl->opt->maxiter;
|
|
40
|
-
mdl->opt->maxiter = 3;
|
|
41
|
-
trn_sgdl1(mdl);
|
|
42
|
-
mdl->opt->maxiter = maxiter;
|
|
43
|
-
trn_lbfgs(mdl);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
36
|
static const struct {
|
|
47
37
|
const char *name;
|
|
48
38
|
void (* train)(mdl_t *mdl);
|
|
@@ -52,10 +42,9 @@ static const struct {
|
|
|
52
42
|
{"bcd", trn_bcd },
|
|
53
43
|
{"rprop", trn_rprop},
|
|
54
44
|
{"rprop+", trn_rprop},
|
|
55
|
-
{"rprop-", trn_rprop}
|
|
56
|
-
{"auto", trn_auto }
|
|
45
|
+
{"rprop-", trn_rprop}
|
|
57
46
|
};
|
|
58
|
-
static const
|
|
47
|
+
static const uint32_t trn_cnt = sizeof(trn_lst) / sizeof(trn_lst[0]);
|
|
59
48
|
|
|
60
49
|
|
|
61
50
|
/* --- Options Class --- */
|
|
@@ -865,13 +854,14 @@ static VALUE model_train(VALUE self, VALUE data) {
|
|
|
865
854
|
|
|
866
855
|
mdl_t* model = get_model(self);
|
|
867
856
|
|
|
868
|
-
|
|
857
|
+
uint32_t trn;
|
|
869
858
|
for (trn = 0; trn < trn_cnt; trn++) {
|
|
870
859
|
if (!strcmp(model->opt->algo, trn_lst[trn].name)) break;
|
|
871
860
|
}
|
|
872
861
|
|
|
873
862
|
if (trn == trn_cnt) {
|
|
874
|
-
rb_raise(cNativeError,
|
|
863
|
+
rb_raise(cNativeError,
|
|
864
|
+
"failed to train model: unknown algorithm '%s'", model->opt->algo);
|
|
875
865
|
}
|
|
876
866
|
|
|
877
867
|
FILE *file;
|
|
@@ -882,22 +872,20 @@ static VALUE model_train(VALUE self, VALUE data) {
|
|
|
882
872
|
file = fopen(model->opt->pattern, "r");
|
|
883
873
|
|
|
884
874
|
if (!file) {
|
|
885
|
-
rb_raise(cNativeError,
|
|
875
|
+
rb_raise(cNativeError,
|
|
876
|
+
"failed to train model: failed to load pattern file '%s'", model->opt->pattern);
|
|
886
877
|
}
|
|
887
878
|
|
|
888
879
|
rdr_loadpat(model->reader, file);
|
|
889
880
|
fclose(file);
|
|
890
|
-
}
|
|
891
|
-
else {
|
|
892
|
-
// rb_raise(cNativeError, "failed to train model: no pattern given");
|
|
893
|
-
}
|
|
894
881
|
|
|
895
|
-
|
|
882
|
+
qrk_lock(model->reader->obs, false);
|
|
883
|
+
}
|
|
896
884
|
|
|
897
885
|
|
|
898
886
|
// Load the training data. When this is done we lock the quarks as we
|
|
899
887
|
// don't want to put in the model, informations present only in the
|
|
900
|
-
//
|
|
888
|
+
// development set.
|
|
901
889
|
|
|
902
890
|
switch (TYPE(data)) {
|
|
903
891
|
case T_STRING:
|
|
@@ -928,7 +916,8 @@ static VALUE model_train(VALUE self, VALUE data) {
|
|
|
928
916
|
// the training dataset will be used instead.
|
|
929
917
|
if (model->opt->devel) {
|
|
930
918
|
if (!(file = fopen(model->opt->devel, "r"))) {
|
|
931
|
-
rb_raise(cNativeError,
|
|
919
|
+
rb_raise(cNativeError,
|
|
920
|
+
"failed to train model: cannot open development file '%s'", model->opt->devel);
|
|
932
921
|
}
|
|
933
922
|
|
|
934
923
|
model->devel = rdr_readdat(model->reader, file, true);
|
|
@@ -937,7 +926,8 @@ static VALUE model_train(VALUE self, VALUE data) {
|
|
|
937
926
|
|
|
938
927
|
// Initialize the model. If a previous model was loaded, this will be
|
|
939
928
|
// just a resync, else the model structure will be created.
|
|
940
|
-
rb_funcall(self, rb_intern("sync"), 0);
|
|
929
|
+
// rb_funcall(self, rb_intern("sync"), 0);
|
|
930
|
+
mdl_sync(model);
|
|
941
931
|
|
|
942
932
|
// Train the model.
|
|
943
933
|
uit_setup(model);
|
|
@@ -946,7 +936,8 @@ static VALUE model_train(VALUE self, VALUE data) {
|
|
|
946
936
|
|
|
947
937
|
// If requested compact the model.
|
|
948
938
|
if (model->opt->compact) {
|
|
949
|
-
rb_funcall(self, rb_intern("compact"), 0);
|
|
939
|
+
// rb_funcall(self, rb_intern("compact"), 0);
|
|
940
|
+
mdl_compact(model);
|
|
950
941
|
}
|
|
951
942
|
|
|
952
943
|
return self;
|
data/lib/wapiti/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: wapiti
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sylvester Keil
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-02-
|
|
11
|
+
date: 2014-02-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|