ruby-dnn 0.9.4 → 0.10.0
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 +39 -3
- data/Rakefile +6 -0
- data/examples/cifar100_example.rb +71 -0
- data/examples/cifar10_example.rb +2 -1
- data/examples/iris_example.rb +2 -1
- data/examples/mnist_conv2d_example.rb +2 -1
- data/examples/mnist_example.rb +2 -3
- data/examples/mnist_lstm_example.rb +2 -1
- data/ext/cifar_loader/cifar_loader.c +77 -0
- data/ext/cifar_loader/extconf.rb +3 -0
- data/lib/dnn.rb +1 -0
- data/lib/dnn/{lib/cifar10.rb → cifar10.rb} +9 -11
- data/lib/dnn/cifar100.rb +49 -0
- data/lib/dnn/core/activations.rb +28 -24
- data/lib/dnn/core/cnn_layers.rb +216 -94
- data/lib/dnn/core/dataset.rb +21 -5
- data/lib/dnn/core/initializers.rb +3 -3
- data/lib/dnn/core/layers.rb +81 -150
- data/lib/dnn/core/losses.rb +88 -49
- data/lib/dnn/core/model.rb +97 -74
- data/lib/dnn/core/normalizations.rb +72 -0
- data/lib/dnn/core/optimizers.rb +171 -78
- data/lib/dnn/core/regularizers.rb +92 -22
- data/lib/dnn/core/rnn_layers.rb +146 -121
- data/lib/dnn/core/utils.rb +4 -3
- data/lib/dnn/{lib/downloader.rb → downloader.rb} +5 -1
- data/lib/dnn/{lib/image.rb → image.rb} +1 -1
- data/lib/dnn/{lib/iris.rb → iris.rb} +1 -1
- data/lib/dnn/{lib/mnist.rb → mnist.rb} +4 -3
- data/lib/dnn/version.rb +1 -1
- data/ruby-dnn.gemspec +1 -1
- metadata +13 -12
- data/API-Reference.ja.md +0 -978
- data/LIB-API-Reference.ja.md +0 -97
- data/ext/cifar10_loader/cifar10_loader.c +0 -44
- data/ext/cifar10_loader/extconf.rb +0 -3
data/LIB-API-Reference.ja.md
DELETED
@@ -1,97 +0,0 @@
|
|
1
|
-
# LIB-APIリファレンス
|
2
|
-
ruby-dnnの付属ライブラリのリファレンスです。
|
3
|
-
最終更新バージョン:0.8.6
|
4
|
-
|
5
|
-
|
6
|
-
# dnn/lib/mnist
|
7
|
-
MNISTデータセットを扱うライブラリです。初回利用時は、データセットのダウンロードを行うため、時間がかかります。
|
8
|
-
|
9
|
-
|
10
|
-
# module MNIST
|
11
|
-
MNISTを扱うモジュールです。
|
12
|
-
|
13
|
-
## 【Singleton methods】
|
14
|
-
|
15
|
-
## def self.load_train
|
16
|
-
トレーニング用データを取得します。
|
17
|
-
### arguments
|
18
|
-
なし。
|
19
|
-
### return
|
20
|
-
Array
|
21
|
-
[イメージデータ, ラベルデータ]の形式で取得します。
|
22
|
-
* イメージデータ
|
23
|
-
Numo::UInt8の[60000, 28, 28]の形式
|
24
|
-
* テストデータ
|
25
|
-
Numo::UInt8の[60000]の形式
|
26
|
-
|
27
|
-
## def self.load_test
|
28
|
-
テスト用データを取得します。
|
29
|
-
### arguments
|
30
|
-
なし。
|
31
|
-
### return
|
32
|
-
Array
|
33
|
-
[イメージデータ, ラベルデータ]の形式で取得します。
|
34
|
-
* イメージデータ
|
35
|
-
Numo::UInt8の[10000, 28, 28]の形式
|
36
|
-
* テストデータ
|
37
|
-
Numo::UInt8の[10000]の形式
|
38
|
-
|
39
|
-
|
40
|
-
# dnn/lib/cifar10
|
41
|
-
CIFAR-10データセットを扱うライブラリです。初回利用時は、データセットのダウンロードを行うため、時間がかかります。
|
42
|
-
|
43
|
-
|
44
|
-
# module CIFAR10
|
45
|
-
CIFAR-10を扱うモジュールです。
|
46
|
-
|
47
|
-
## 【Singleton methods】
|
48
|
-
|
49
|
-
## def self.load_train
|
50
|
-
トレーニング用データを取得します。
|
51
|
-
### arguments
|
52
|
-
なし。
|
53
|
-
### return
|
54
|
-
Array
|
55
|
-
[イメージデータ, ラベルデータ]の形式で取得します。
|
56
|
-
* イメージデータ
|
57
|
-
Numo::UInt8の[50000, 3, 32, 32]の形式
|
58
|
-
* テストデータ
|
59
|
-
Numo::UInt8の[50000]の形式
|
60
|
-
|
61
|
-
## def self.load_test
|
62
|
-
テスト用データを取得します。
|
63
|
-
### arguments
|
64
|
-
なし。
|
65
|
-
### return
|
66
|
-
Array
|
67
|
-
[イメージデータ, ラベルデータ]の形式で取得します。
|
68
|
-
* イメージデータ
|
69
|
-
Numo::UInt8の[10000, 32, 32, 3]の形式
|
70
|
-
* テストデータ
|
71
|
-
Numo::UInt8の[10000]の形式
|
72
|
-
|
73
|
-
|
74
|
-
# dnn/lib/image
|
75
|
-
画像のread/writeを行うライブラリです。内部でstb_image.hとstb_image_write.hを使用しています。
|
76
|
-
|
77
|
-
|
78
|
-
# module Image
|
79
|
-
|
80
|
-
## def self.read(file_name)
|
81
|
-
画像をNumo::UInt8形式で読み込みます。
|
82
|
-
### arguments
|
83
|
-
* String file_name
|
84
|
-
読み込む画像のファイル名。
|
85
|
-
### return
|
86
|
-
Numo::UInt8
|
87
|
-
[height, width, rgb]のNumo::UInt8配列。
|
88
|
-
|
89
|
-
## def self.write(file_name, img, quality: 100)
|
90
|
-
Numo::UInt8形式の画像を書き込みます。
|
91
|
-
### arguments
|
92
|
-
* String file_name
|
93
|
-
書き込む画像のファイル名。
|
94
|
-
* Numo::UInt8 img
|
95
|
-
[height, width, rgb]のNumo::UInt8配列。
|
96
|
-
* Integer quality: 100
|
97
|
-
画像をJPEGで書き込む場合のクオリティ。
|
@@ -1,44 +0,0 @@
|
|
1
|
-
#include <ruby.h>
|
2
|
-
#include <stdint.h>
|
3
|
-
#include <stdlib.h>
|
4
|
-
|
5
|
-
#define CIFAR10_WIDTH 32
|
6
|
-
#define CIFAR10_HEIGHT 32
|
7
|
-
#define CIFAR10_CHANNEL 3
|
8
|
-
|
9
|
-
static VALUE cifar10_load_binary(VALUE self, VALUE rb_bin, VALUE rb_num_datas) {
|
10
|
-
uint8_t* bin = (uint8_t*)StringValuePtr(rb_bin);
|
11
|
-
int32_t num_datas = FIX2INT(rb_num_datas);
|
12
|
-
VALUE rb_x_bin;
|
13
|
-
VALUE rb_y_bin;
|
14
|
-
int32_t i;
|
15
|
-
int32_t j = 0;
|
16
|
-
int32_t k = 0;
|
17
|
-
int32_t size = CIFAR10_WIDTH * CIFAR10_HEIGHT * CIFAR10_CHANNEL;
|
18
|
-
int32_t x_bin_size = num_datas * size;
|
19
|
-
int32_t y_bin_size = num_datas;
|
20
|
-
uint8_t* x_bin;
|
21
|
-
uint8_t* y_bin;
|
22
|
-
|
23
|
-
x_bin = (uint8_t*)malloc(x_bin_size);
|
24
|
-
y_bin = (uint8_t*)malloc(y_bin_size);
|
25
|
-
for (i = 0; i < num_datas; i++) {
|
26
|
-
y_bin[i] = bin[j];
|
27
|
-
j++;
|
28
|
-
memcpy(&x_bin[k], &bin[j], size);
|
29
|
-
j += size;
|
30
|
-
k += size;
|
31
|
-
}
|
32
|
-
rb_x_bin = rb_str_new((char*)x_bin, x_bin_size);
|
33
|
-
rb_y_bin = rb_str_new((char*)y_bin, y_bin_size);
|
34
|
-
free(x_bin);
|
35
|
-
free(y_bin);
|
36
|
-
return rb_ary_new3(2, rb_x_bin, rb_y_bin);
|
37
|
-
}
|
38
|
-
|
39
|
-
void Init_cifar10_loader() {
|
40
|
-
VALUE rb_dnn = rb_define_module("DNN");
|
41
|
-
VALUE rb_cifar10 = rb_define_module_under(rb_dnn, "CIFAR10");
|
42
|
-
|
43
|
-
rb_define_singleton_method(rb_cifar10, "load_binary", cifar10_load_binary, 2);
|
44
|
-
}
|