numo-liblinear 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4e69ca89df0a86fdc4be7d1a3074a4722ead3997a6f7ba2fff84b48c6d1c36ea
4
- data.tar.gz: 992d8f8606dbf272ac18c1f6502e923d69ce3242d6cb35a460b3856cace29671
3
+ metadata.gz: 582af5c3cacbe43a05329bd6d355a89c4bff8ac52aceacedb50a20ae61703dd0
4
+ data.tar.gz: c522cd810baa4f5b57065a52675479ea9ad563b32d2608e03f42639b929a6753
5
5
  SHA512:
6
- metadata.gz: 46f453f5b9ee23640a7131d92d3f666806e182265654cec321ebae22c97ae6af06a5b35726e4ab0cfde96407d0fb828391a2c5578c3e27644c487df66432cce8
7
- data.tar.gz: d1e0fc15d4227491823fe4ed8f631c491e6cd4c8fb9c078ccf230785e2881fa12134dbfca9e84069bd8d995c140523bfc0572cbaa38761b114d162015dea5be1
6
+ metadata.gz: 4b1d93cbcadf64aa4eddb44f47b1d0725d6002201393b8dc926f8288214609b140381beaa1ed09a47180a640c0d9b93612b5d2d1fb70c1c81c74caebcc1fc7de
7
+ data.tar.gz: 3d254a3ca1ab5075c1b5a5cc84a64e40473d7e8575368f5eface0585eaa52eaa6c515fd7f43be4460c82b7aad7e95e02982a8c1e45c06cbe550266da8dee6db2
@@ -0,0 +1,27 @@
1
+ name: build
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ ruby: [ '2.5', '2.6', '2.7' ]
11
+ steps:
12
+ - uses: actions/checkout@v2
13
+ - name: Checkout submodule
14
+ shell: bash
15
+ run: |
16
+ auth_header="$(git config --local --get http.https://github.com/.extraheader)"
17
+ git submodule sync --recursive
18
+ git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
19
+ - name: Set up Ruby ${{ matrix.ruby }}
20
+ uses: actions/setup-ruby@v1
21
+ with:
22
+ ruby-version: ${{ matrix.ruby }}
23
+ - name: Build and test with Rake
24
+ run: |
25
+ gem install bundler
26
+ bundle install --jobs 4 --retry 3
27
+ bundle exec rake
@@ -1,3 +1,7 @@
1
+ # 1.1.1
2
+ - Add GC guard codes.
3
+ - Fix some configuration files.
4
+
1
5
  # 1.1.0
2
6
  - Update bundled LIBLINEAR version to 2.4.1.
3
7
  - Support one-class SVM implemented on LIBLINEAR ver. 2.4.0.
@@ -1,4 +1,4 @@
1
- Copyright (c) 2019-2020 Atsushi Tatsuma
1
+ Copyright (c) 2019-2021 Atsushi Tatsuma
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Numo::Liblinear
2
2
 
3
- [![Build Status](https://travis-ci.org/yoshoku/numo-liblinear.svg?branch=master)](https://travis-ci.org/yoshoku/numo-liblinear)
3
+ [![Build Status](https://github.com/yoshoku/numo-liblinear/workflows/build/badge.svg)](https://github.com/yoshoku/numo-liblinear/actions?query=workflow%3Abuild)
4
4
  [![Gem Version](https://badge.fury.io/rb/numo-liblinear.svg)](https://badge.fury.io/rb/numo-liblinear)
5
- [![BSD 3-Clause License](https://img.shields.io/badge/License-BSD%203--Clause-orange.svg)](https://github.com/yoshoku/numo-liblinear/blob/master/LICENSE.txt)
5
+ [![BSD 3-Clause License](https://img.shields.io/badge/License-BSD%203--Clause-orange.svg)](https://github.com/yoshoku/numo-liblinear/blob/main/LICENSE.txt)
6
6
  [![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg)](https://yoshoku.github.io/numo-liblinear/doc/)
7
7
 
8
8
  Numo::Liblinear is a Ruby gem binding to the [LIBLINEAR](https://www.csie.ntu.edu.tw/~cjlin/liblinear/) library.
@@ -148,7 +148,7 @@ Accuracy: 87.9 %
148
148
  ## Note
149
149
  The hyperparemter of LIBLINEAR is given with Ruby Hash on Numo::Liblinear.
150
150
  The hash key of hyperparameter and its meaning match the struct parameter of LIBLINEAR.
151
- The parameter is detailed in [LIBLINEAR README](https://github.com/cjlin1/liblinear/blob/master/README)
151
+ The parameter is detailed in [LIBLINEAR README](https://github.com/cjlin1/liblinear/blob/main/README)
152
152
 
153
153
  ```ruby
154
154
  param = {
@@ -162,17 +162,12 @@ param = {
162
162
  weight: # [Numo::DFloat] Weight values
163
163
  Numo::DFloat[0.4, 0.4, 0.2],
164
164
  p: 0.1, # [Float] Sensitiveness of loss of support vector regression
165
+ nu: 0.5, # [Float] one-class SVM approximates the fraction of data as outliers
165
166
  verbose: false, # [Boolean] Whether to output learning process message
166
167
  random_seed: 1 # [Integer/Nil] Random seed
167
168
  }
168
169
  ```
169
170
 
170
- ## Development
171
-
172
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
173
-
174
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
175
-
176
171
  ## Contributing
177
172
 
178
173
  Bug reports and pull requests are welcome on GitHub at https://github.com/yoshoku/numo-liblinear.
@@ -181,4 +176,4 @@ This project is intended to be a safe, welcoming space for collaboration, and co
181
176
  ## Code of Conduct
182
177
 
183
178
  Everyone interacting in the Numo::Liblinear project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow
184
- the [code of conduct](https://github.com/yoshoku/numo-liblinear/blob/master/CODE_OF_CONDUCT.md).
179
+ the [code of conduct](https://github.com/yoshoku/numo-liblinear/blob/main/CODE_OF_CONDUCT.md).
@@ -27,6 +27,8 @@ int* nary_to_int_vec(VALUE vec_val)
27
27
  vec_pt = (int32_t*)na_get_pointer_for_read(vec_val);
28
28
  for (i = 0; i < n_elements; i++) { vec[i] = (int)vec_pt[i]; }
29
29
 
30
+ RB_GC_GUARD(vec_val);
31
+
30
32
  return vec;
31
33
  }
32
34
 
@@ -56,6 +58,8 @@ double* nary_to_dbl_vec(VALUE vec_val)
56
58
  vec_pt = (double*)na_get_pointer_for_read(vec_val);
57
59
  memcpy(vec, vec_pt, n_elements * sizeof(double));
58
60
 
61
+ RB_GC_GUARD(vec_val);
62
+
59
63
  return vec;
60
64
  }
61
65
 
@@ -98,6 +102,8 @@ double** nary_to_dbl_mat(VALUE mat_val)
98
102
  }
99
103
  }
100
104
 
105
+ RB_GC_GUARD(mat_val);
106
+
101
107
  return mat;
102
108
  }
103
109
 
@@ -112,6 +112,9 @@ VALUE numo_liblinear_train(VALUE self, VALUE x_val, VALUE y_val, VALUE param_has
112
112
  xfree_problem(problem);
113
113
  xfree_parameter(param);
114
114
 
115
+ RB_GC_GUARD(x_val);
116
+ RB_GC_GUARD(y_val);
117
+
115
118
  return model_hash;
116
119
  }
117
120
 
@@ -225,6 +228,9 @@ VALUE numo_liblinear_cross_validation(VALUE self, VALUE x_val, VALUE y_val, VALU
225
228
  xfree_problem(problem);
226
229
  xfree_parameter(param);
227
230
 
231
+ RB_GC_GUARD(x_val);
232
+ RB_GC_GUARD(y_val);
233
+
228
234
  return t_val;
229
235
  }
230
236
 
@@ -291,6 +297,8 @@ VALUE numo_liblinear_predict(VALUE self, VALUE x_val, VALUE param_hash, VALUE mo
291
297
  xfree_model(model);
292
298
  xfree_parameter(param);
293
299
 
300
+ RB_GC_GUARD(x_val);
301
+
294
302
  return y_val;
295
303
  }
296
304
 
@@ -381,6 +389,8 @@ VALUE numo_liblinear_decision_function(VALUE self, VALUE x_val, VALUE param_hash
381
389
  xfree_model(model);
382
390
  xfree_parameter(param);
383
391
 
392
+ RB_GC_GUARD(x_val);
393
+
384
394
  return y_val;
385
395
  }
386
396
 
@@ -457,6 +467,8 @@ VALUE numo_liblinear_predict_proba(VALUE self, VALUE x_val, VALUE param_hash, VA
457
467
  xfree_model(model);
458
468
  xfree_parameter(param);
459
469
 
470
+ RB_GC_GUARD(x_val);
471
+
460
472
  return y_val;
461
473
  }
462
474
 
@@ -85,5 +85,8 @@ struct problem* dataset_to_problem(VALUE x_val, VALUE y_val)
85
85
  problem->y[i] = y_pt[i];
86
86
  }
87
87
 
88
+ RB_GC_GUARD(x_val);
89
+ RB_GC_GUARD(y_val);
90
+
88
91
  return problem;
89
92
  }
@@ -3,6 +3,6 @@
3
3
  module Numo
4
4
  module Liblinear
5
5
  # The version of Numo::Liblienar you are using.
6
- VERSION = '1.1.0'
6
+ VERSION = '1.1.1'
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: numo-liblinear
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshoku
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-14 00:00:00.000000000 Z
11
+ date: 2021-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: numo-narray
@@ -91,10 +91,10 @@ extensions:
91
91
  - ext/numo/liblinear/extconf.rb
92
92
  extra_rdoc_files: []
93
93
  files:
94
+ - ".github/workflows/build.yml"
94
95
  - ".gitignore"
95
96
  - ".gitmodules"
96
97
  - ".rspec"
97
- - ".travis.yml"
98
98
  - CHANGELOG.md
99
99
  - CODE_OF_CONDUCT.md
100
100
  - Gemfile
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  - !ruby/object:Gem::Version
150
150
  version: '0'
151
151
  requirements: []
152
- rubygems_version: 3.1.2
152
+ rubygems_version: 3.1.4
153
153
  signing_key:
154
154
  specification_version: 4
155
155
  summary: Numo::Liblinear is a Ruby gem binding to the LIBLINEAR library. Numo::Liblinear
@@ -1,14 +0,0 @@
1
- ---
2
- sudo: true
3
- os: linux
4
- dist: bionic
5
- language: ruby
6
- cache: bundler
7
- rvm:
8
- - '2.4'
9
- - '2.5'
10
- - '2.6'
11
- - '2.7'
12
-
13
- before_install:
14
- - gem install bundler -v 2.0.2