ruby-dnn 0.9.4 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- 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/dnn/core/utils.rb
CHANGED
@@ -12,10 +12,11 @@ module DNN
|
|
12
12
|
end
|
13
13
|
|
14
14
|
# Convert hash to an object.
|
15
|
-
def self.
|
15
|
+
def self.from_hash(hash)
|
16
|
+
return nil if hash == nil
|
16
17
|
dnn_class = DNN.const_get(hash[:class])
|
17
|
-
if dnn_class.respond_to?(:
|
18
|
-
return dnn_class.
|
18
|
+
if dnn_class.respond_to?(:from_hash)
|
19
|
+
return dnn_class.from_hash(hash)
|
19
20
|
end
|
20
21
|
dnn_class.new
|
21
22
|
end
|
@@ -5,7 +5,11 @@ module DNN
|
|
5
5
|
class DNN_DownloadError < DNN_Error; end
|
6
6
|
|
7
7
|
class Downloader
|
8
|
-
def self.download(url, dir_path =
|
8
|
+
def self.download(url, dir_path = nil)
|
9
|
+
unless dir_path
|
10
|
+
Dir.mkdir("#{__dir__}/downloads") unless Dir.exist?("#{__dir__}/downloads")
|
11
|
+
dir_path = "#{__dir__}/downloads"
|
12
|
+
end
|
9
13
|
Downloader.new(url).download(dir_path)
|
10
14
|
rescue => ex
|
11
15
|
raise DNN_DownloadError.new(ex.message)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require "zlib"
|
2
|
-
require_relative "
|
2
|
+
require_relative "core/error"
|
3
3
|
require_relative "downloader"
|
4
4
|
|
5
5
|
module DNN
|
@@ -13,6 +13,7 @@ module DNN
|
|
13
13
|
|
14
14
|
def self.downloads
|
15
15
|
return if Dir.exist?(mnist_dir)
|
16
|
+
Dir.mkdir("#{__dir__}/downloads") unless Dir.exist?("#{__dir__}/downloads")
|
16
17
|
Dir.mkdir(mnist_dir)
|
17
18
|
Downloader.download(URL_TRAIN_IMAGES, mnist_dir)
|
18
19
|
Downloader.download(URL_TRAIN_LABELS, mnist_dir)
|
@@ -73,11 +74,11 @@ module DNN
|
|
73
74
|
end
|
74
75
|
|
75
76
|
def self.mnist_dir
|
76
|
-
__dir__
|
77
|
+
"#{__dir__}/downloads/mnist"
|
77
78
|
end
|
78
79
|
|
79
80
|
def self.url_to_file_name(url)
|
80
81
|
mnist_dir + "/" + url.match(%r`.+/(.+)$`)[1]
|
81
82
|
end
|
82
83
|
end
|
83
|
-
end
|
84
|
+
end
|
data/lib/dnn/version.rb
CHANGED
data/ruby-dnn.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.description = %q{ruby-dnn is a ruby deep learning library.}
|
14
14
|
spec.homepage = "https://github.com/unagiootoro/ruby-dnn.git"
|
15
15
|
spec.license = "MIT"
|
16
|
-
spec.extensions = ["ext/
|
16
|
+
spec.extensions = ["ext/cifar_loader/extconf.rb", "ext/rb_stb_image/extconf.rb"]
|
17
17
|
|
18
18
|
spec.add_dependency "numo-narray"
|
19
19
|
spec.add_dependency "archive-tar-minitar"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-dnn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- unagiootoro
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-06-
|
11
|
+
date: 2019-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: numo-narray
|
@@ -85,32 +85,33 @@ email:
|
|
85
85
|
- ootoro838861@outlook.jp
|
86
86
|
executables: []
|
87
87
|
extensions:
|
88
|
-
- ext/
|
88
|
+
- ext/cifar_loader/extconf.rb
|
89
89
|
- ext/rb_stb_image/extconf.rb
|
90
90
|
extra_rdoc_files: []
|
91
91
|
files:
|
92
92
|
- ".gitignore"
|
93
93
|
- ".travis.yml"
|
94
|
-
- API-Reference.ja.md
|
95
94
|
- CODE_OF_CONDUCT.md
|
96
95
|
- Gemfile
|
97
|
-
- LIB-API-Reference.ja.md
|
98
96
|
- LICENSE.txt
|
99
97
|
- README.md
|
100
98
|
- Rakefile
|
101
99
|
- bin/console
|
102
100
|
- bin/setup
|
101
|
+
- examples/cifar100_example.rb
|
103
102
|
- examples/cifar10_example.rb
|
104
103
|
- examples/iris_example.rb
|
105
104
|
- examples/mnist_conv2d_example.rb
|
106
105
|
- examples/mnist_example.rb
|
107
106
|
- examples/mnist_lstm_example.rb
|
108
107
|
- examples/xor_example.rb
|
109
|
-
- ext/
|
110
|
-
- ext/
|
108
|
+
- ext/cifar_loader/cifar_loader.c
|
109
|
+
- ext/cifar_loader/extconf.rb
|
111
110
|
- ext/rb_stb_image/extconf.rb
|
112
111
|
- ext/rb_stb_image/rb_stb_image.c
|
113
112
|
- lib/dnn.rb
|
113
|
+
- lib/dnn/cifar10.rb
|
114
|
+
- lib/dnn/cifar100.rb
|
114
115
|
- lib/dnn/core/activations.rb
|
115
116
|
- lib/dnn/core/cnn_layers.rb
|
116
117
|
- lib/dnn/core/dataset.rb
|
@@ -119,16 +120,16 @@ files:
|
|
119
120
|
- lib/dnn/core/layers.rb
|
120
121
|
- lib/dnn/core/losses.rb
|
121
122
|
- lib/dnn/core/model.rb
|
123
|
+
- lib/dnn/core/normalizations.rb
|
122
124
|
- lib/dnn/core/optimizers.rb
|
123
125
|
- lib/dnn/core/param.rb
|
124
126
|
- lib/dnn/core/regularizers.rb
|
125
127
|
- lib/dnn/core/rnn_layers.rb
|
126
128
|
- lib/dnn/core/utils.rb
|
127
|
-
- lib/dnn/
|
128
|
-
- lib/dnn/
|
129
|
-
- lib/dnn/
|
130
|
-
- lib/dnn/
|
131
|
-
- lib/dnn/lib/mnist.rb
|
129
|
+
- lib/dnn/downloader.rb
|
130
|
+
- lib/dnn/image.rb
|
131
|
+
- lib/dnn/iris.rb
|
132
|
+
- lib/dnn/mnist.rb
|
132
133
|
- lib/dnn/version.rb
|
133
134
|
- ruby-dnn.gemspec
|
134
135
|
- third_party/stb_image.h
|
data/API-Reference.ja.md
DELETED
@@ -1,978 +0,0 @@
|
|
1
|
-
# APIリファレンス
|
2
|
-
ruby-dnnのAPIリファレンスです。このリファレンスでは、APIを利用するうえで必要となるクラスとメソッドしか記載していません。
|
3
|
-
そのため、プログラムの詳細が必要な場合は、ソースコードを参照してください。
|
4
|
-
|
5
|
-
最終更新バージョン:0.9.2
|
6
|
-
|
7
|
-
# module DNN
|
8
|
-
ruby-dnnの名前空間をなすモジュールです。
|
9
|
-
|
10
|
-
## 【Constants】
|
11
|
-
|
12
|
-
## VERSION
|
13
|
-
ruby-dnnのバージョン。
|
14
|
-
|
15
|
-
# class Model
|
16
|
-
ニューラルネットワークのモデルを作成するクラスです。
|
17
|
-
|
18
|
-
## 【Properties】
|
19
|
-
|
20
|
-
## attr_accessor :layer
|
21
|
-
モデルに追加されたレイヤーの配列を取得します。
|
22
|
-
|
23
|
-
## attr_accessor :trainable
|
24
|
-
falseを設定すると、パラメータの学習を禁止します。
|
25
|
-
|
26
|
-
|
27
|
-
## 【Singleton methods】
|
28
|
-
|
29
|
-
## def self.load(file_name)
|
30
|
-
marshalファイルを読み込み、モデルを作成します。
|
31
|
-
### arguments
|
32
|
-
* String file_name
|
33
|
-
読み込むmarshalファイル名。
|
34
|
-
### return
|
35
|
-
Model
|
36
|
-
生成したモデル。
|
37
|
-
|
38
|
-
## def self.load_json(json_str)
|
39
|
-
json文字列からモデルを作成します。
|
40
|
-
### arguments
|
41
|
-
* String json_str
|
42
|
-
json文字列。
|
43
|
-
### return
|
44
|
-
Model
|
45
|
-
生成したモデル。
|
46
|
-
|
47
|
-
## 【Instance methods】
|
48
|
-
|
49
|
-
## def load_json_params(json_str)
|
50
|
-
学習パラメータをjson文字列から取得し、モデルにセットします。
|
51
|
-
### arguments
|
52
|
-
* String json_str
|
53
|
-
学習パラメータを変換して生成したjson文字列。
|
54
|
-
### return
|
55
|
-
なし。
|
56
|
-
|
57
|
-
## def save(file_name)
|
58
|
-
モデルをmarshalファイルに保存します。
|
59
|
-
このmarshalファイルには、学習パラメータ及びOptimizerの状態が保存されるため、
|
60
|
-
読み込んだ後、正確に学習を継続することができます。
|
61
|
-
### arguments
|
62
|
-
* String file_name
|
63
|
-
書き込むファイル名。
|
64
|
-
### return
|
65
|
-
なし。
|
66
|
-
|
67
|
-
## def to_json
|
68
|
-
モデルをjson文字列に変換します。
|
69
|
-
変換したjson文字列には学習パラメータの情報は含まれません。
|
70
|
-
学習パラメータの情報を取得したい場合は、params_to_jsonを使用してください。
|
71
|
-
### arguments
|
72
|
-
なし。
|
73
|
-
### return
|
74
|
-
String
|
75
|
-
モデルを変換して生成したjson文字列。
|
76
|
-
|
77
|
-
## def params_to_json
|
78
|
-
学習パラメータをjson文字列に変換します。
|
79
|
-
### arguments
|
80
|
-
なし。
|
81
|
-
### return
|
82
|
-
String
|
83
|
-
学習パラメータを変換して生成したjson文字列。
|
84
|
-
|
85
|
-
## def <<(layer)
|
86
|
-
モデルにレイヤー追加します。
|
87
|
-
### arguments
|
88
|
-
* Layer
|
89
|
-
追加するレイヤー。
|
90
|
-
### return
|
91
|
-
Model
|
92
|
-
自身のモデルのインスタンス。
|
93
|
-
|
94
|
-
## def optimizer
|
95
|
-
モデルのオプティマイザーを取得します。
|
96
|
-
|
97
|
-
### arguments
|
98
|
-
なし。
|
99
|
-
### return
|
100
|
-
Optimizer
|
101
|
-
モデルのオプティマイザー。
|
102
|
-
|
103
|
-
## def loss
|
104
|
-
モデルの損失関数を取得します。
|
105
|
-
|
106
|
-
### arguments
|
107
|
-
なし。
|
108
|
-
### return
|
109
|
-
Loss
|
110
|
-
モデルの損失関数。
|
111
|
-
|
112
|
-
## def compile(optimizer, loss)
|
113
|
-
モデルをコンパイルします。
|
114
|
-
### arguments
|
115
|
-
* Optimizer optimizer
|
116
|
-
モデルが学習に使用するオプティマイザー。
|
117
|
-
* Loss loss
|
118
|
-
モデルが学習に使用する損失関数。
|
119
|
-
### return
|
120
|
-
なし。
|
121
|
-
|
122
|
-
## def compile(optimizer, loss)
|
123
|
-
モデルを再コンパイルします。ただし、レイヤーのビルドは行いません。
|
124
|
-
### arguments
|
125
|
-
* Optimizer optimizer
|
126
|
-
モデルが学習に使用するオプティマイザー。
|
127
|
-
* Loss loss
|
128
|
-
モデルが学習に使用する損失関数。
|
129
|
-
### return
|
130
|
-
なし。
|
131
|
-
|
132
|
-
## def compiled?
|
133
|
-
モデルがコンパイル済みであるか否かを取得します。
|
134
|
-
### arguments
|
135
|
-
なし。
|
136
|
-
### return
|
137
|
-
bool
|
138
|
-
モデルがコンパイル済みであるか否か。
|
139
|
-
|
140
|
-
## def train(x, y, epochs, batch_size: 1, test: nil, verbose: true, batch_proc: nil, &epoch_proc)
|
141
|
-
コンパイルしたモデルを用いて学習を行います。
|
142
|
-
### arguments
|
143
|
-
* Numo::SFloat x
|
144
|
-
トレーニング用入力データ。
|
145
|
-
* Numo::SFloat y
|
146
|
-
トレーニング用出力データ。
|
147
|
-
* Integer epochs
|
148
|
-
学習回数。
|
149
|
-
* Integer batch_size: 1
|
150
|
-
学習に使用するミニバッチの数。
|
151
|
-
* Array test: nil
|
152
|
-
[テスト用入力データ, テスト用出力データ]の形式で設定すると、1エポックごとにテストを行います。
|
153
|
-
* bool verbose: true
|
154
|
-
trueを設定すると、学習ログを出力します。
|
155
|
-
* Proc batch_proc: nil
|
156
|
-
一度のバッチ学習が行われる前に呼び出されるprocを登録します。
|
157
|
-
### block
|
158
|
-
epoch_proc
|
159
|
-
1エポックの学習が終了するたびに呼び出されます。
|
160
|
-
### return
|
161
|
-
なし。
|
162
|
-
|
163
|
-
## def train_on_batch(x, y, &batch_proc)
|
164
|
-
入力されたバッチデータをもとに、一度だけ学習を行います。
|
165
|
-
### arguments
|
166
|
-
* Numo::SFloat x
|
167
|
-
トレーニング用入力バッチデータ。
|
168
|
-
* Numo::SFloat y
|
169
|
-
トレーニング用出力バッチデータ。
|
170
|
-
### block
|
171
|
-
一度のバッチ学習が行われる前に呼び出されます。
|
172
|
-
### return
|
173
|
-
Integer
|
174
|
-
損失関数の値を返します。
|
175
|
-
|
176
|
-
## def accurate(x, y, batch_size = 100, &batch_proc)
|
177
|
-
学習結果をもとに認識率を返します。
|
178
|
-
### arguments
|
179
|
-
* Numo::SFloat x
|
180
|
-
テスト用入力データ。
|
181
|
-
* Numo::SFloat y
|
182
|
-
テスト用出力データ。
|
183
|
-
* batch_size
|
184
|
-
ミニバッチの数。
|
185
|
-
### block
|
186
|
-
一度のバッチ学習が行われる前に呼び出されます。
|
187
|
-
### return
|
188
|
-
Float
|
189
|
-
テスト結果の認識率を返します。
|
190
|
-
|
191
|
-
## def predict(x)
|
192
|
-
モデルを使用して、結果の推論を行います。
|
193
|
-
入力データは、バッチデータである必要があります。
|
194
|
-
### arguments
|
195
|
-
* Numo::SFloat x
|
196
|
-
推論用入力データ。
|
197
|
-
### return
|
198
|
-
Numo::SFloat
|
199
|
-
推論結果を返します。
|
200
|
-
|
201
|
-
## def predict1(x)
|
202
|
-
モデルを使用して、結果の推論を行います。
|
203
|
-
predictとは異なり、一つの入力データに対して、一つの出力データを返します。
|
204
|
-
### arguments
|
205
|
-
* Numo::SFloat x
|
206
|
-
推論用入力データ。
|
207
|
-
### return
|
208
|
-
Numo::SFloat
|
209
|
-
推論結果を返します。
|
210
|
-
|
211
|
-
## def copy
|
212
|
-
現在のモデルをコピーした新たなモデルを生成します。
|
213
|
-
### arguments
|
214
|
-
なし。
|
215
|
-
### return
|
216
|
-
Model
|
217
|
-
コピーしたモデル。
|
218
|
-
|
219
|
-
## def get_layer(index)
|
220
|
-
indexのレイヤーを取得します。
|
221
|
-
### arguments
|
222
|
-
* Integer index
|
223
|
-
取得するレイヤーのインデックス。
|
224
|
-
### return
|
225
|
-
Layer
|
226
|
-
対象のレイヤーのインスタンス。
|
227
|
-
|
228
|
-
## def get_layer(layer_class, index)
|
229
|
-
layer_classで指定されたクラスのレイヤーをindexで取得します。
|
230
|
-
### arguments
|
231
|
-
* Layer layer_class
|
232
|
-
取得するレイヤーのクラス。
|
233
|
-
* Integer index
|
234
|
-
レイヤーのインデックス。例えば、layersが[InputLayer, Dense, Dense,SoftmaxWithLoss]のとき、
|
235
|
-
最初のDenseを取得したい場合、インデックスは0になります。
|
236
|
-
### return
|
237
|
-
Layer
|
238
|
-
対象のレイヤーのインスタンス。
|
239
|
-
|
240
|
-
## def get_all_layers
|
241
|
-
モデルが持つ全てのレイヤー(モデルが持つ下位のモデルのレイヤーも含む)を取得します。
|
242
|
-
### arguments
|
243
|
-
なし。
|
244
|
-
### return
|
245
|
-
Array
|
246
|
-
モデルの持つすべてのレイヤーの配列
|
247
|
-
|
248
|
-
# module Layers
|
249
|
-
レイヤーの名前空間をなすモジュールです。
|
250
|
-
|
251
|
-
|
252
|
-
# class Layer
|
253
|
-
全てのレイヤーのスーパークラスです。
|
254
|
-
|
255
|
-
## 【Instance methods】
|
256
|
-
|
257
|
-
## def build(input_shape)
|
258
|
-
モデルのコンパイル時に、レイヤーをビルドするために使用されます。
|
259
|
-
### arguments
|
260
|
-
* Array input_shape
|
261
|
-
入力されるNArrayの形状。
|
262
|
-
### return
|
263
|
-
なし。
|
264
|
-
|
265
|
-
## def built?
|
266
|
-
レイヤーがビルド済みであるか否かを取得します。
|
267
|
-
### arguments
|
268
|
-
なし。
|
269
|
-
### return
|
270
|
-
bool
|
271
|
-
レイヤーがビルド済みであるか否か。
|
272
|
-
|
273
|
-
## abstruct def forward(x)
|
274
|
-
順方向伝搬を行うメソッドです。Layerクラスを継承するクラスは、このメソッドを実装する必要があります。
|
275
|
-
### arguments
|
276
|
-
* Numo::SFloat x
|
277
|
-
入力データ。
|
278
|
-
### return
|
279
|
-
Numo::SFloat
|
280
|
-
出力データ。
|
281
|
-
|
282
|
-
## abstruct def backward(dout)
|
283
|
-
逆方向伝搬を行うメソッドです。Layerクラスを継承するクラスは、このメソッドを実装する必要があります。
|
284
|
-
### arguments
|
285
|
-
* Numo::SFloat dout
|
286
|
-
逆方向から伝搬してきた微分値。
|
287
|
-
### return
|
288
|
-
Numo::SFloat
|
289
|
-
逆方向に伝搬する微分値。
|
290
|
-
|
291
|
-
## def shape
|
292
|
-
レイヤーの形状を取得するメソッドです。
|
293
|
-
### arguments
|
294
|
-
なし。
|
295
|
-
### return
|
296
|
-
Array
|
297
|
-
レイヤーの形状。Layerクラスのshapeメソッドでは、前レイヤーの形状を返却します。
|
298
|
-
|
299
|
-
## abstruct def to_hash
|
300
|
-
レイヤーをハッシュに変換します。このメソッドは、モデルをjsonに変換するために使用されます。このメソッドが返すハッシュの要素には、{name: `self.class.name`}が含まれていなければなりません。
|
301
|
-
### arguments
|
302
|
-
なし。
|
303
|
-
### return
|
304
|
-
Hash
|
305
|
-
レイヤーを変換したハッシュ。
|
306
|
-
|
307
|
-
|
308
|
-
# class HasParamLayer < Layer
|
309
|
-
学習可能なパラメータを持つ全てのレイヤーのスーパークラスです。
|
310
|
-
|
311
|
-
## 【Instance methods】
|
312
|
-
|
313
|
-
## private abstruct def init_params
|
314
|
-
更新可能なパラメータを初期化します。HasParamLayerクラスを継承するクラスは、このメソッドを実装する必要があります。
|
315
|
-
このメソッドは、レイヤーが初回ビルドされたときのみ実行されます。
|
316
|
-
### arguments
|
317
|
-
なし。
|
318
|
-
### return
|
319
|
-
なし。
|
320
|
-
|
321
|
-
|
322
|
-
# class InputLayer < Layer
|
323
|
-
入力層に該当するレイヤーです。モデルの先頭レイヤーは、必ずこのクラスのインスタンスでなければなりません。
|
324
|
-
|
325
|
-
## 【Instance methods】
|
326
|
-
|
327
|
-
## def initialize(dim_or_shape)
|
328
|
-
コンストラクタ
|
329
|
-
### arguments
|
330
|
-
* Integer | Array dim_or_shape
|
331
|
-
入力層のdimentionまたはshapeを指定します。引数がIntegerだとdimentionとみなし、Arrayだとshapeとみなします。
|
332
|
-
|
333
|
-
|
334
|
-
# class Connection < HasParamLayer
|
335
|
-
ニューロンを接続するすべてのレイヤーのスーパークラスです。
|
336
|
-
|
337
|
-
## 【Properties】
|
338
|
-
|
339
|
-
## attr_reader :weight_initializer
|
340
|
-
Initializer
|
341
|
-
重みの初期化に使用するイニシャライザーを取得します。
|
342
|
-
|
343
|
-
## attr_reader :bias_initializer
|
344
|
-
Initializer
|
345
|
-
バイアスの初期化に使用するイニシャライザーを取得します。
|
346
|
-
|
347
|
-
## attr_reader :l1_lambda
|
348
|
-
Float
|
349
|
-
重みのL1正則化の係数を取得します。
|
350
|
-
|
351
|
-
## attr_reader :l2_lambda
|
352
|
-
Float
|
353
|
-
重みのL2正則化の係数を取得します。
|
354
|
-
|
355
|
-
|
356
|
-
# class Dense < Connection
|
357
|
-
全結合レイヤーを扱うクラスです。
|
358
|
-
|
359
|
-
## 【Properties】
|
360
|
-
|
361
|
-
## attr_reader :num_nodes
|
362
|
-
Integer
|
363
|
-
レイヤーのノード数を取得します。
|
364
|
-
|
365
|
-
## 【Instance methods】
|
366
|
-
|
367
|
-
## def initialize(num_nodes, weight_initializer: Initializers::RandomNormal.new, bias_initializer: Initializers::Zeros.new, l1_lambda: 0, l2_lambda: 0)
|
368
|
-
コンストラクタ。
|
369
|
-
### arguments
|
370
|
-
* Integer num_nodes
|
371
|
-
レイヤーのノード数を設定します。
|
372
|
-
* Initializer weight_initializer: Initializers::RandomNormal.new
|
373
|
-
重みの初期化に使用するイニシャライザーを設定します。
|
374
|
-
* Initializer bias_initializer: Initializers::Zeros.new
|
375
|
-
バイアスの初期化に使用するイニシャライザーを設定します。
|
376
|
-
* Float l1_lambda: 0
|
377
|
-
重みのL1正則化の係数を設定します。
|
378
|
-
* Float l2_lambda: 0
|
379
|
-
重みのL2正則化の係数を設定します。
|
380
|
-
|
381
|
-
|
382
|
-
# class Conv2D < Connection
|
383
|
-
畳み込みレイヤーを扱うクラスです。
|
384
|
-
|
385
|
-
## 【Properties】
|
386
|
-
|
387
|
-
## attr_reader :num_filters
|
388
|
-
Integer
|
389
|
-
出力するフィルターの枚数。
|
390
|
-
|
391
|
-
## attr_reader :filter_size
|
392
|
-
Array
|
393
|
-
フィルターの縦と横の長さ。
|
394
|
-
[Integer height, Integer width]の形式で取得します。
|
395
|
-
|
396
|
-
## attr_reader :strides
|
397
|
-
Array
|
398
|
-
畳み込みを行う際のストライドの単位。
|
399
|
-
[Integer height, Integer width]の形式で取得します。
|
400
|
-
|
401
|
-
## 【Instance methods】
|
402
|
-
|
403
|
-
## def initialize(num_filters, filter_size, weight_initializer: Initializers::RandomNormal.new, bias_initializer: Initializers::Zeros.new, strides: 1, padding false, l1_lambda: 0, l2_lambda: 0)
|
404
|
-
コンストラクタ。
|
405
|
-
### arguments
|
406
|
-
* Integer num_filters
|
407
|
-
出力するフィルターの枚数。
|
408
|
-
* Integer | Array filter_size
|
409
|
-
フィルターの縦と横の長さ。
|
410
|
-
Arrayで指定する場合、[Integer height, Integer width]の形式で指定します。
|
411
|
-
* Initializer weight_initializer: Initializers::RandomNormal.new
|
412
|
-
重みの初期化に使用するイニシャライザーを設定します。
|
413
|
-
* Initializer bias_initializer: Initializers::Zeros.new
|
414
|
-
バイアスの初期化に使用するイニシャライザーを設定します。
|
415
|
-
* Array<Integer> strides: 1
|
416
|
-
畳み込みを行う際のストライドの単位を指定します。
|
417
|
-
Arrayで指定する場合、[Integer height, Integer width]の形式で指定します。
|
418
|
-
* bool padding: true
|
419
|
-
イメージに対してゼロパディングを行うか否かを設定します。trueを設定すると、出力されるイメージのサイズが入力されたイメージと同じになるように
|
420
|
-
ゼロパディングを行います。
|
421
|
-
* Float l1_lambda: 0
|
422
|
-
重みのL1正則化の係数を設定します。
|
423
|
-
* Float l2_lambda: 0
|
424
|
-
重みのL2正則化の係数を設定します。
|
425
|
-
|
426
|
-
|
427
|
-
# class Pool2D < Layer
|
428
|
-
全ての2Dプーリングレイヤーのスーパークラスです。
|
429
|
-
|
430
|
-
## 【Properties】
|
431
|
-
|
432
|
-
## attr_reader :pool_size
|
433
|
-
Array
|
434
|
-
プーリングを行う縦と横の長さ。
|
435
|
-
[Integer height, Integer width]の形式で取得します。
|
436
|
-
|
437
|
-
## attr_reader :strides
|
438
|
-
Array
|
439
|
-
畳み込みを行う際のストライドの単位。
|
440
|
-
[Integer height, Integer width]の形式で取得します。
|
441
|
-
|
442
|
-
## 【Instance methods】
|
443
|
-
|
444
|
-
## def initialize(pool_size, strides: nil, padding: false)
|
445
|
-
コンストラクタ。
|
446
|
-
### arguments
|
447
|
-
* Integer | Array pool_size
|
448
|
-
プーリングを行う縦と横の長さ。
|
449
|
-
Arrayで指定する場合、[Integer height, Integer width]の形式で指定します。
|
450
|
-
* Array<Integer> strides: nil
|
451
|
-
畳み込みを行う際のストライドの単位を指定します。
|
452
|
-
Arrayで指定する場合、[Integer height, Integer width]の形式で指定します。
|
453
|
-
なお、nilが設定された場合は、pool_sizeがstridesの値となります。
|
454
|
-
* bool padding: true
|
455
|
-
イメージに対してゼロパディングを行うか否かを設定します。trueを設定すると、出力されるイメージのサイズが入力されたイメージと同じになるように
|
456
|
-
ゼロパディングを行います。
|
457
|
-
|
458
|
-
|
459
|
-
# class MaxPool2D < Pool2D
|
460
|
-
maxプーリングを行うレイヤーです。
|
461
|
-
|
462
|
-
|
463
|
-
# class AvgPool2D < Pool2D
|
464
|
-
averageプーリングを行うレイヤーです。
|
465
|
-
|
466
|
-
|
467
|
-
# class UnPool2D < Layer
|
468
|
-
逆プーリングを行うレイヤーです。
|
469
|
-
|
470
|
-
## 【Properties】
|
471
|
-
|
472
|
-
## attr_reader :unpool_size
|
473
|
-
Array
|
474
|
-
逆プーリングを行う縦と横の長さ。
|
475
|
-
[Integer height, Integer width]の形式で取得します。
|
476
|
-
|
477
|
-
## 【Instance methods】
|
478
|
-
|
479
|
-
## def initialize(unpool_size)
|
480
|
-
コンストラクタ。
|
481
|
-
### arguments
|
482
|
-
* Integer unpool_size
|
483
|
-
逆プーリングを行う縦と横の長さ。
|
484
|
-
Arrayで指定する場合、[Integer height, Integer width]の形式で指定します。
|
485
|
-
|
486
|
-
|
487
|
-
# class RNN < Connection
|
488
|
-
全てのリカレントニューラルネットワークのレイヤーのスーパークラスです。
|
489
|
-
|
490
|
-
## attr_reader :num_nodes
|
491
|
-
Integer
|
492
|
-
レイヤーのノード数を取得します。
|
493
|
-
|
494
|
-
## attr_reader :stateful
|
495
|
-
bool
|
496
|
-
レイヤーがステートフルであるか否かを返します。
|
497
|
-
|
498
|
-
## attr_reader :return_sequences
|
499
|
-
bool
|
500
|
-
trueを指定した場合、レイヤーのforward出力値において、時系列データ全てを返します。
|
501
|
-
falseを指定した場合、レイヤーのforward出力値において、時系列データの最後の値を返します。
|
502
|
-
|
503
|
-
## 【Instance methods】
|
504
|
-
|
505
|
-
## def initialize(num_nodes, stateful: false, return_sequences: true, weight_initializer: Initializers::RandomNormal.new, bias_initializer: Initializers::Zeros.new, l1_lamda: 0, l2_lambda: 0)
|
506
|
-
コンストラクタ。
|
507
|
-
### arguments
|
508
|
-
* Integer num_nodes
|
509
|
-
レイヤーのノード数を設定します。
|
510
|
-
* bool stateful
|
511
|
-
trueを設定すると、一つ前に計算した中間層の値を使用して学習を行うことができます。
|
512
|
-
* bool return_sequences
|
513
|
-
trueを設定すると、時系列ネットワークの中間層全てを出力します。
|
514
|
-
falseを設定すると、時系列ネットワークの中間層の最後のみを出力します。
|
515
|
-
* Initializer weight_initializer: Initializers::RandomNormal.new
|
516
|
-
重みの初期化に使用するイニシャライザーを設定します。
|
517
|
-
* Initializer bias_initializer: Initializers::Zeros.new
|
518
|
-
バイアスの初期化に使用するイニシャライザーを設定します。
|
519
|
-
* Float l1_lambda: 0
|
520
|
-
重みのL1正則化の係数を設定します。
|
521
|
-
* Float l2_lambda: 0
|
522
|
-
重みのL2正則化の係数を設定します。
|
523
|
-
|
524
|
-
## def reset_state
|
525
|
-
中間層のステートをリセットします。
|
526
|
-
|
527
|
-
|
528
|
-
# class SimpleRNN < RNN
|
529
|
-
シンプルなRNNレイヤーを扱うクラスです。
|
530
|
-
|
531
|
-
## 【Instance methods】
|
532
|
-
|
533
|
-
## def initialize(num_nodes, stateful: false, return_sequences: true, activation: Tanh.new, weight_initializer: Initializers::RandomNormal.new, bias_initializer: Initializers::Zeros.new, l1_lamda: 0, l2_lambda: 0)
|
534
|
-
コンストラクタ。
|
535
|
-
### arguments
|
536
|
-
* Integer num_nodes
|
537
|
-
レイヤーのノード数を設定します。
|
538
|
-
* bool stateful
|
539
|
-
trueを設定すると、一つ前に計算した中間層の値を使用して学習を行うことができます。
|
540
|
-
* bool return_sequences
|
541
|
-
trueを設定すると、時系列ネットワークの中間層全てを出力します。
|
542
|
-
falseを設定すると、時系列ネットワークの中間層の最後のみを出力します。
|
543
|
-
* Layer activation
|
544
|
-
リカレントニューラルネットワークにおいて、使用する活性化関数を設定します。
|
545
|
-
* Initializer weight_initializer: nil
|
546
|
-
重みの初期化に使用するイニシャライザーを設定します。
|
547
|
-
* Initializer bias_initializer: nil
|
548
|
-
バイアスの初期化に使用するイニシャライザーを設定します。
|
549
|
-
* Float l1_lambda: 0
|
550
|
-
重みのL1正則化の係数を設定します。
|
551
|
-
* Float l2_lambda: 0
|
552
|
-
重みのL2正則化の係数を設定します。
|
553
|
-
|
554
|
-
|
555
|
-
# class LSTM < RNN
|
556
|
-
LSTMレイヤーを扱うクラスです。
|
557
|
-
|
558
|
-
|
559
|
-
# class GRU < RNN
|
560
|
-
GRUレイヤーを扱うクラスです。
|
561
|
-
|
562
|
-
|
563
|
-
# class Flatten
|
564
|
-
N次元のデータを平坦化します。
|
565
|
-
|
566
|
-
|
567
|
-
# class Reshape < Layer
|
568
|
-
データの形状を変更します。
|
569
|
-
|
570
|
-
## 【Instance methods】
|
571
|
-
|
572
|
-
## def initialize(shape)
|
573
|
-
コンストラクタ。
|
574
|
-
### arguments
|
575
|
-
* Array<Integer> shape
|
576
|
-
データの形状を変更するshapeです。
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
# class Dropout
|
583
|
-
学習の際に、一部のノードを非活性化させるクラスです。
|
584
|
-
|
585
|
-
## 【Properties】
|
586
|
-
|
587
|
-
## attr_reader :dropout_ratio
|
588
|
-
ノードを非活性にする割合を取得します。
|
589
|
-
|
590
|
-
## 【Instance methods】
|
591
|
-
|
592
|
-
## def initialize(dropout_ratio = 0.5)
|
593
|
-
コンストラクタ。
|
594
|
-
### arguments
|
595
|
-
* Float dropout_ratio
|
596
|
-
ノードを非活性にする割合。
|
597
|
-
|
598
|
-
|
599
|
-
# class BatchNormalization < HasParamLayer
|
600
|
-
ミニバッチ単位でのデータの正規化を行います。
|
601
|
-
|
602
|
-
## 【Properties】
|
603
|
-
|
604
|
-
## attr_reader :momentum
|
605
|
-
推論時に使用する平均と分散を求めるための指数平均移動の係数。
|
606
|
-
|
607
|
-
## 【Instance methods】
|
608
|
-
|
609
|
-
## def initialize(momentum: 0.9
|
610
|
-
コンストラクタ。
|
611
|
-
### arguments
|
612
|
-
* Float momenum: 0.9
|
613
|
-
推論時に使用する平均と分散を求めるための指数平均移動の係数。
|
614
|
-
|
615
|
-
|
616
|
-
# module Activations
|
617
|
-
活性化関数のレイヤーの名前空間をなすモジュールです。
|
618
|
-
|
619
|
-
|
620
|
-
# class Sigmoid < Layer
|
621
|
-
シグモイド関数のレイヤーです。
|
622
|
-
|
623
|
-
|
624
|
-
# class Tanh < Layer
|
625
|
-
tanh関数のレイヤーです。
|
626
|
-
|
627
|
-
|
628
|
-
# class Softsign < Layer
|
629
|
-
softsign関数のレイヤーです。
|
630
|
-
|
631
|
-
|
632
|
-
# class Softplus < Layer
|
633
|
-
softplus関数のレイヤーです。
|
634
|
-
|
635
|
-
|
636
|
-
# class Swish < Layer
|
637
|
-
swish関数のレイヤーです。
|
638
|
-
|
639
|
-
|
640
|
-
# class ReLU < Layer
|
641
|
-
ランプ関数のレイヤーです。
|
642
|
-
|
643
|
-
|
644
|
-
# class LeakyReLU < Layer
|
645
|
-
LeakyReLU関数のレイヤーです。
|
646
|
-
|
647
|
-
## 【Properties】
|
648
|
-
## attr_reader :alpha
|
649
|
-
Float alpha
|
650
|
-
出力値が負のときの傾き。
|
651
|
-
|
652
|
-
## 【Instance methods】
|
653
|
-
|
654
|
-
## def initialize(alpha)
|
655
|
-
コンストラクタ。
|
656
|
-
### arguments
|
657
|
-
* Float alpha
|
658
|
-
出力値が負のときの傾き。
|
659
|
-
|
660
|
-
|
661
|
-
# class ELU < Layer
|
662
|
-
eLU関数のレイヤーです。
|
663
|
-
|
664
|
-
## 【Properties】
|
665
|
-
## attr_reader :alpha
|
666
|
-
Float alpha
|
667
|
-
出力値が負のときの傾き。
|
668
|
-
|
669
|
-
## 【Instance methods】
|
670
|
-
|
671
|
-
## def initialize(alpha)
|
672
|
-
コンストラクタ。
|
673
|
-
### arguments
|
674
|
-
* Float alpha
|
675
|
-
出力値が負のときの傾き。
|
676
|
-
|
677
|
-
|
678
|
-
# module Initializers
|
679
|
-
全てのInitializerの名前空間をなすモジュールです。
|
680
|
-
|
681
|
-
|
682
|
-
# class Initializer
|
683
|
-
全てのInitializeクラスのスーパークラスです。
|
684
|
-
|
685
|
-
## 【Instance methods】
|
686
|
-
|
687
|
-
## def init_param(layer, param)
|
688
|
-
レイヤーの持つパラメータを更新します。
|
689
|
-
### arguments
|
690
|
-
* HasParamLayer layer
|
691
|
-
更新対象のパラメータを持つレイヤーを指定します。
|
692
|
-
* Param param
|
693
|
-
更新するパラメータです。
|
694
|
-
|
695
|
-
|
696
|
-
# class Zeros < Initializer
|
697
|
-
パラメータを0で初期化します。
|
698
|
-
|
699
|
-
|
700
|
-
# class Const < Initializer
|
701
|
-
パラメータを指定の定数で初期化します。
|
702
|
-
|
703
|
-
## 【Instance methods】
|
704
|
-
## def initialize(const)
|
705
|
-
### arguments
|
706
|
-
* Float const
|
707
|
-
初期化する定数
|
708
|
-
|
709
|
-
|
710
|
-
# class RandomNormal < Initializer
|
711
|
-
パラメータを正規分布による乱数で初期化します。
|
712
|
-
|
713
|
-
## 【Properties】
|
714
|
-
## attr_reader :mean
|
715
|
-
Float mean
|
716
|
-
正規分布の平均。
|
717
|
-
## attr_reader :std
|
718
|
-
Float std
|
719
|
-
正規分布の分散。
|
720
|
-
|
721
|
-
## 【Instance methods】
|
722
|
-
## def initialize(mean = 0, std = 0.05)
|
723
|
-
### arguments
|
724
|
-
* Float mean = 0
|
725
|
-
正規分布の平均。
|
726
|
-
* Float std = 0.05
|
727
|
-
正規分布の分散。
|
728
|
-
|
729
|
-
|
730
|
-
# class RandomUniform < Initializer
|
731
|
-
パラメータを一様分布による乱数で初期化します。
|
732
|
-
|
733
|
-
## 【Properties】
|
734
|
-
## attr_reader :min
|
735
|
-
Float min
|
736
|
-
一様分布の最小値。
|
737
|
-
## attr_reader :max
|
738
|
-
Float max
|
739
|
-
一様分布の最大値。
|
740
|
-
|
741
|
-
## 【Instance methods】
|
742
|
-
## def initialize(min = -0.05, max = 0.05)
|
743
|
-
### arguments
|
744
|
-
* Float min = -0.05
|
745
|
-
一様分布の最小値。
|
746
|
-
* Float max = 0.05
|
747
|
-
一様分布の最大値。
|
748
|
-
|
749
|
-
|
750
|
-
# class Xavier < Initializer
|
751
|
-
パラメータをXavierの初期値で初期化します。
|
752
|
-
|
753
|
-
|
754
|
-
# class He < Initializer
|
755
|
-
パラメータをHeの初期値で初期化します。
|
756
|
-
|
757
|
-
|
758
|
-
# module Optimizers
|
759
|
-
全てのOptimizerの名前空間をなすモジュールです。
|
760
|
-
|
761
|
-
|
762
|
-
# class Optimizer
|
763
|
-
全てのOptimizerのスーパークラスです。
|
764
|
-
|
765
|
-
## 【Properties】
|
766
|
-
|
767
|
-
## attr_accessor :learning_rate
|
768
|
-
Float learning_rate
|
769
|
-
学習率のプロパティです。
|
770
|
-
|
771
|
-
## 【Instance methods】
|
772
|
-
|
773
|
-
## def initialize(learning_rate)
|
774
|
-
コンストラクタ。
|
775
|
-
### arguments
|
776
|
-
* Float learning_rate
|
777
|
-
Optimizerの学習率。
|
778
|
-
|
779
|
-
## abstruct def update(params)
|
780
|
-
paramsが持つ全ての学習パラメータにおいて、gradを元に、dataを更新します。全てのOptimizerを継承するクラスは、このメソッドを実装する必要があります。
|
781
|
-
### arguments
|
782
|
-
* Layer layer
|
783
|
-
paramsを更新するレイヤー。
|
784
|
-
### return
|
785
|
-
なし。
|
786
|
-
|
787
|
-
|
788
|
-
# class SGD < Optimizer
|
789
|
-
SGDによるオプティマイザです。
|
790
|
-
|
791
|
-
## 【Properties】
|
792
|
-
|
793
|
-
## attr_accessor :momentum
|
794
|
-
Float momentum
|
795
|
-
モーメンタム係数。
|
796
|
-
|
797
|
-
## 【Instance methods】
|
798
|
-
|
799
|
-
## def initialize(learning_rate = 0.01, momentum: 0)
|
800
|
-
コンストラクタ。
|
801
|
-
### arguments
|
802
|
-
* Float learning_rate
|
803
|
-
学習率。
|
804
|
-
* Float momentum
|
805
|
-
モーメンタム係数。
|
806
|
-
|
807
|
-
|
808
|
-
# class Nesterov < SGD
|
809
|
-
Nesterovによるオプティマイザです。
|
810
|
-
|
811
|
-
## 【Instance methods】
|
812
|
-
|
813
|
-
## def initialize(learning_rate = 0.01, momentum: 0.9)
|
814
|
-
コンストラクタ。
|
815
|
-
### arguments
|
816
|
-
* Float learning_rate
|
817
|
-
学習率。
|
818
|
-
* Float momentum
|
819
|
-
モーメンタム係数。
|
820
|
-
|
821
|
-
|
822
|
-
# class AdaGrad < Optimizer
|
823
|
-
AdaGradによるオプティマイザです。
|
824
|
-
|
825
|
-
|
826
|
-
# class RMSProp < Optimizer
|
827
|
-
RMSPropによるオプティマイザです。
|
828
|
-
|
829
|
-
## 【Properties】
|
830
|
-
|
831
|
-
## attr_accessor :alpha
|
832
|
-
Float alpha
|
833
|
-
指数平均移動のための係数。
|
834
|
-
|
835
|
-
## 【Instance methods】
|
836
|
-
|
837
|
-
## def initialize(learning_rate = 0.001, alpha: 0.9)
|
838
|
-
コンストラクタ。
|
839
|
-
### arguments
|
840
|
-
* Float learning_rate
|
841
|
-
学習率。
|
842
|
-
* Float alpha
|
843
|
-
指数平均移動のための係数。
|
844
|
-
|
845
|
-
|
846
|
-
# class AdaDelta < Optimizer
|
847
|
-
AdaDeltaによるオプティマイザです。
|
848
|
-
|
849
|
-
## 【Properties】
|
850
|
-
|
851
|
-
## attr_accessor :rho
|
852
|
-
Float rho
|
853
|
-
指数平均移動のための係数。
|
854
|
-
|
855
|
-
## 【Instance methods】
|
856
|
-
|
857
|
-
## def initialize(rho: 0.95)
|
858
|
-
コンストラクタ。
|
859
|
-
### arguments
|
860
|
-
* Float rho
|
861
|
-
指数平均移動のための係数。
|
862
|
-
|
863
|
-
|
864
|
-
# class Adam < Optimizer
|
865
|
-
Adamによるオプティマイザです。
|
866
|
-
|
867
|
-
## 【Properties】
|
868
|
-
|
869
|
-
## attr_accessor :beta1
|
870
|
-
Float beta1
|
871
|
-
指数平均移動のための係数1。
|
872
|
-
|
873
|
-
## attr_accessor :beta2
|
874
|
-
Float beta2
|
875
|
-
指数平均移動のための係数2。
|
876
|
-
|
877
|
-
## 【Instance methods】
|
878
|
-
|
879
|
-
## def initialize(learning_rate = 0.001, beta1: 0.9, beta2: 0.999)
|
880
|
-
コンストラクタ。
|
881
|
-
### arguments
|
882
|
-
* Float beta1
|
883
|
-
指数平均移動のための係数1。
|
884
|
-
* Float beta2
|
885
|
-
指数平均移動のための係数2。
|
886
|
-
|
887
|
-
|
888
|
-
# module Utils
|
889
|
-
ユーティリティ関数を提供します。
|
890
|
-
|
891
|
-
## 【Singleton methods】
|
892
|
-
|
893
|
-
## def self.get_minibatch(x, y, batch_size)
|
894
|
-
batch_size分のミニバッチを取得します。
|
895
|
-
### arguments
|
896
|
-
* Numo::SFloat x
|
897
|
-
教師データの入力データ。
|
898
|
-
* Numo::SFloat y
|
899
|
-
教師データの出力データ。
|
900
|
-
* Integer batch_size
|
901
|
-
ミニバッチのサイズ。
|
902
|
-
### return
|
903
|
-
Array
|
904
|
-
[xのミニバッチ, yのミニバッチ]の形式の配列を返します。
|
905
|
-
|
906
|
-
## def self.to_categorical(y, num_classes, type = nil)
|
907
|
-
ラベルをnum_classesのベクトルにカテゴライズします。
|
908
|
-
### arguments
|
909
|
-
* Numo::SFloat y
|
910
|
-
教師データの出力データ。
|
911
|
-
* Integer num_classes
|
912
|
-
カテゴライズするクラス数。
|
913
|
-
* NArray narray_type = nil
|
914
|
-
カテゴライズしたNArrayデータの型。nilを指定すると、yの型を使用します。
|
915
|
-
### return
|
916
|
-
NArray
|
917
|
-
カテゴライズされたNArrayのインスタンス。
|
918
|
-
|
919
|
-
## def self.sigmoid(x)
|
920
|
-
xのシグモイド関数の値を返します。
|
921
|
-
### arguments
|
922
|
-
* Numo::SFloat x
|
923
|
-
シグモイド関数の引数の値。
|
924
|
-
### return
|
925
|
-
Numo::SFloat
|
926
|
-
シグモイド関数の値。
|
927
|
-
|
928
|
-
## def self.softmax(x)
|
929
|
-
xのソフトマックス関数の値を返します。
|
930
|
-
### arguments
|
931
|
-
* Numo::SFloat x
|
932
|
-
ソフトマックス関数の引数の値。
|
933
|
-
### return
|
934
|
-
Numo::SFloat
|
935
|
-
ソフトマックス関数の値。
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
# module Losses
|
940
|
-
損失関数のレイヤーの名前空間をなすモジュールです。
|
941
|
-
|
942
|
-
# class Loss
|
943
|
-
出力層に該当するレイヤーです。出力層の活性化関数は、全てこのクラスを継承する必要があります。
|
944
|
-
|
945
|
-
## 【Instance methods】
|
946
|
-
## abstruct def forward(out, y)
|
947
|
-
損失関数の順伝搬を行います。全ての損失関数のクラスは、このメソッドを実装する必要があります。
|
948
|
-
|
949
|
-
### arguments
|
950
|
-
Numo::SFloat out
|
951
|
-
ニューラルネットワークの出力値。
|
952
|
-
Numo::SFloat y
|
953
|
-
教師データの値。
|
954
|
-
### return
|
955
|
-
損失関数の値。
|
956
|
-
|
957
|
-
## abstruct def backward(y)
|
958
|
-
損失関数の逆伝搬を行います。全ての損失関数のクラスは、このメソッドを実装する必要があります。
|
959
|
-
### arguments
|
960
|
-
Numo::SFloat y
|
961
|
-
出力データ。
|
962
|
-
### return
|
963
|
-
損失関数の値。
|
964
|
-
|
965
|
-
# class MeanSquaredError < Loss
|
966
|
-
二乗誤差の損失関数です。
|
967
|
-
|
968
|
-
|
969
|
-
# class MeanAbsoluteError < Loss
|
970
|
-
平均絶対誤差の損失関数です。
|
971
|
-
|
972
|
-
|
973
|
-
# class SoftmaxCrossEntropy < Loss
|
974
|
-
ソフトマックス関数とクロスエントロピー誤差を合わせた損失関数です。
|
975
|
-
|
976
|
-
|
977
|
-
# class SigmoidCrossEntropy < Loss
|
978
|
-
シグモイド関数とクロスエントロピー誤差を合わせた損失関数です。
|