red-datasets 0.0.4 → 0.0.5
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/README.md +10 -12
- data/doc/text/news.md +21 -0
- data/lib/datasets/cifar.rb +12 -4
- data/lib/datasets/table.rb +41 -0
- data/lib/datasets/version.rb +1 -1
- data/test/test-cifar.rb +10 -0
- data/test/test-table.rb +50 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b52a97ab0ea10ea2d5ca5b873adab2e57aa8f8a71093e9e94c13da55bc8f774
|
4
|
+
data.tar.gz: 5f5525fc4cda3a9a57c08f6855fedd4da3c4be8b72fb7b35cee0e99133492c1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae45fd3d9a6128ddca38c2b37a3a0c8fa89c831bdb1e14c1fdda2183be29385f74df6259ec4ae36934b8c0db57c9d2434208beeeaed854ea254ec6c327f21d64
|
7
|
+
data.tar.gz: 45209c6e106d78d008e73ab4414a933bc8f7333addf107c773b78f74359ef1fec262d5a22eeb9818db1512e1d0aab30f1baa00944bdd49eb7d8717f02454064b
|
data/README.md
CHANGED
@@ -48,11 +48,10 @@ cifar = Datasets::CIFAR.new(n_classes: 10, type: :train)
|
|
48
48
|
cifar.metadata
|
49
49
|
#=> #<struct Datasets::Metadata name="CIFAR-10", url="https://www.cs.toronto.edu/~kriz/cifar.html", licenses=nil, description="CIFAR-10 is 32x32 image dataset">licenses=nil, description="CIFAR-10 is 32x32 image datasets">
|
50
50
|
cifar.each do |record|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
end
|
51
|
+
p record.pixels
|
52
|
+
# => [59, 43, 50, 68, 98, 119, 139, 145, 149, 143, .....]
|
53
|
+
p record.label
|
54
|
+
# => 6
|
56
55
|
end
|
57
56
|
```
|
58
57
|
|
@@ -65,13 +64,12 @@ cifar = Datasets::CIFAR.new(n_classes: 100, type: :test)
|
|
65
64
|
cifar.metadata
|
66
65
|
#=> #<struct Datasets::Metadata name="CIFAR-100", url="https://www.cs.toronto.edu/~kriz/cifar.html", licenses=nil, description="CIFAR-100 is 32x32 image dataset">
|
67
66
|
cifar.each do |record|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
end
|
67
|
+
p record.pixels
|
68
|
+
#=> [199, 196, 195, 195, 196, 197, 198, 198, 199, .....]
|
69
|
+
p record.coarse_label
|
70
|
+
#=> 10
|
71
|
+
p record.fine_label
|
72
|
+
#=> 49
|
75
73
|
end
|
76
74
|
```
|
77
75
|
|
data/doc/text/news.md
CHANGED
@@ -1,5 +1,26 @@
|
|
1
1
|
# News
|
2
2
|
|
3
|
+
## 0.0.5 - 2018-06-06
|
4
|
+
|
5
|
+
### Improvements
|
6
|
+
|
7
|
+
* `Datasets::Table#[]`: Added.
|
8
|
+
|
9
|
+
* `Datasets::Table#fetch_values`: Added.
|
10
|
+
|
11
|
+
* `Datasets::Table#each`: Added.
|
12
|
+
|
13
|
+
* `Datasets::CIFAR`: Added pixels data to `Datasets::Table`.
|
14
|
+
|
15
|
+
### Fixes
|
16
|
+
|
17
|
+
* Fixed indent of sample codes in README.
|
18
|
+
[GitHub#11][Patch by FURUSAWA Tomohiro]
|
19
|
+
|
20
|
+
### Thanks
|
21
|
+
|
22
|
+
* FURUSAWA Tomohiro
|
23
|
+
|
3
24
|
## 0.0.4 - 2018-05-03
|
4
25
|
|
5
26
|
### Improvements
|
data/lib/datasets/cifar.rb
CHANGED
@@ -5,16 +5,24 @@ require_relative "dataset"
|
|
5
5
|
|
6
6
|
module Datasets
|
7
7
|
class CIFAR < Dataset
|
8
|
-
|
8
|
+
module Pixelable
|
9
9
|
def pixels
|
10
10
|
data.unpack("C*")
|
11
11
|
end
|
12
|
+
|
13
|
+
def to_h
|
14
|
+
hash = super
|
15
|
+
hash[:pixels] = pixels
|
16
|
+
hash
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class Record10 < Struct.new(:data, :label)
|
21
|
+
include Pixelable
|
12
22
|
end
|
13
23
|
|
14
24
|
class Record100 < Struct.new(:data, :coarse_label, :fine_label)
|
15
|
-
|
16
|
-
data.unpack("C*")
|
17
|
-
end
|
25
|
+
include Pixelable
|
18
26
|
end
|
19
27
|
|
20
28
|
def initialize(n_classes: 10, type: :train)
|
data/lib/datasets/table.rb
CHANGED
@@ -1,9 +1,31 @@
|
|
1
1
|
module Datasets
|
2
2
|
class Table
|
3
|
+
include Enumerable
|
4
|
+
|
3
5
|
def initialize(dataset)
|
4
6
|
@dataset = dataset
|
5
7
|
end
|
6
8
|
|
9
|
+
def each(&block)
|
10
|
+
columner_data.each(&block)
|
11
|
+
end
|
12
|
+
|
13
|
+
def [](name)
|
14
|
+
columner_data[name.to_sym]
|
15
|
+
end
|
16
|
+
|
17
|
+
def fetch_values(*keys)
|
18
|
+
data = columner_data
|
19
|
+
keys.collect do |key|
|
20
|
+
if data.key?(key)
|
21
|
+
data[key]
|
22
|
+
else
|
23
|
+
raise build_key_error(key) unless block_given?
|
24
|
+
yield(key)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
7
29
|
def to_h
|
8
30
|
columns = {}
|
9
31
|
@dataset.each do |record|
|
@@ -14,5 +36,24 @@ module Datasets
|
|
14
36
|
end
|
15
37
|
columns
|
16
38
|
end
|
39
|
+
|
40
|
+
private
|
41
|
+
begin
|
42
|
+
KeyError.new("message", receiver: self, key: :key)
|
43
|
+
rescue ArgumentError
|
44
|
+
def build_key_error(key)
|
45
|
+
KeyError.new("key not found: #{key.inspect}")
|
46
|
+
end
|
47
|
+
else
|
48
|
+
def build_key_error(key)
|
49
|
+
KeyError.new("key not found: #{key.inspect}",
|
50
|
+
receiver: self,
|
51
|
+
key: key)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def columner_data
|
56
|
+
@columns ||= to_h
|
57
|
+
end
|
17
58
|
end
|
18
59
|
end
|
data/lib/datasets/version.rb
CHANGED
data/test/test-cifar.rb
CHANGED
@@ -168,6 +168,11 @@ class CIFARTest < Test::Unit::TestCase
|
|
168
168
|
],
|
169
169
|
raw_dataset)
|
170
170
|
end
|
171
|
+
|
172
|
+
test("#to_table") do
|
173
|
+
assert_equal([[10] * 3072, [20] * 3072],
|
174
|
+
@dataset.to_table[:pixels])
|
175
|
+
end
|
171
176
|
end
|
172
177
|
|
173
178
|
sub_test_case("test") do
|
@@ -204,6 +209,11 @@ class CIFARTest < Test::Unit::TestCase
|
|
204
209
|
],
|
205
210
|
raw_dataset)
|
206
211
|
end
|
212
|
+
|
213
|
+
test("#to_table") do
|
214
|
+
assert_equal([[100] * 3072, [200] * 3072],
|
215
|
+
@dataset.to_table[:pixels])
|
216
|
+
end
|
207
217
|
end
|
208
218
|
end
|
209
219
|
end
|
data/test/test-table.rb
CHANGED
@@ -3,6 +3,56 @@ class TableTest < Test::Unit::TestCase
|
|
3
3
|
@table = Datasets::Iris.new.to_table
|
4
4
|
end
|
5
5
|
|
6
|
+
test("#[]") do
|
7
|
+
assert_equal([1.4, 1.4, 1.3, 1.5, 1.4],
|
8
|
+
@table[:petal_length].first(5))
|
9
|
+
end
|
10
|
+
|
11
|
+
sub_test_case("#fetch_values") do
|
12
|
+
test("found") do
|
13
|
+
values = @table.fetch_values(:petal_length, :petal_width)
|
14
|
+
assert_equal([
|
15
|
+
[1.4, 1.4, 1.3, 1.5, 1.4],
|
16
|
+
[0.2, 0.2, 0.2, 0.2, 0.2],
|
17
|
+
],
|
18
|
+
values.collect {|v| v.first(5)})
|
19
|
+
end
|
20
|
+
|
21
|
+
sub_test_case("not found") do
|
22
|
+
test("with block") do
|
23
|
+
values = @table.fetch_values(:petal_length, :unknown) do |key|
|
24
|
+
[key] * 5
|
25
|
+
end
|
26
|
+
assert_equal([
|
27
|
+
[1.4, 1.4, 1.3, 1.5, 1.4],
|
28
|
+
[:unknown] * 5,
|
29
|
+
],
|
30
|
+
values.collect {|v| v.first(5)})
|
31
|
+
end
|
32
|
+
|
33
|
+
test("without block") do
|
34
|
+
assert_raise(KeyError) do
|
35
|
+
@table.fetch_values(:unknown)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
test("#each") do
|
42
|
+
shorten_hash = {}
|
43
|
+
@table.each do |name, values|
|
44
|
+
shorten_hash[name] = values.first(5)
|
45
|
+
end
|
46
|
+
assert_equal({
|
47
|
+
:class => ["Iris-setosa"] * 5,
|
48
|
+
:petal_length => [1.4, 1.4, 1.3, 1.5, 1.4],
|
49
|
+
:petal_width => [0.2, 0.2, 0.2, 0.2, 0.2],
|
50
|
+
:sepal_length => [5.1, 4.9, 4.7, 4.6, 5.0],
|
51
|
+
:sepal_width => [3.5, 3.0, 3.2, 3.1, 3.6],
|
52
|
+
},
|
53
|
+
shorten_hash)
|
54
|
+
end
|
55
|
+
|
6
56
|
test("#to_h") do
|
7
57
|
shorten_hash = {}
|
8
58
|
@table.to_h.each do |name, values|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: red-datasets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tomisuker
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-06-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -134,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
134
|
version: '0'
|
135
135
|
requirements: []
|
136
136
|
rubyforge_project:
|
137
|
-
rubygems_version:
|
137
|
+
rubygems_version: 3.0.0.beta1
|
138
138
|
signing_key:
|
139
139
|
specification_version: 4
|
140
140
|
summary: Red Datasets provides classes that provide common datasets such as iris dataset.
|