ruby-dnn 0.1.4 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d93bea405b412da6c7508bf4d990d2a0924ef58c81c7355df4567e39c5639c94
4
- data.tar.gz: 710a8d6f26ce47e26c3c520bf6f541c9c1b4d4d767b5c8ab95f6d097baad5e37
3
+ metadata.gz: d462153bdd72ecf6df60f2d6bc6922ee76f3fd1318f03d33e644c91fe0b1881e
4
+ data.tar.gz: 3ba2d911fbb994f18aa1bf9bb389e1c50fd31c10c5e1dcded5c9f4567b7e35ef
5
5
  SHA512:
6
- metadata.gz: 848ca2e49cb38bfb43e262cb6174b0c521c4137623953a24344043c86a13deb9ec0cca82930332e51701ea16551d0f68018be2dcf79db029d096a2a08091cbf5
7
- data.tar.gz: 48275858ce54ac1bb0da0f22e16d8bc914b3680a66583ba3cd6032be26da99f42676e12701967eec461472be9b57ab45383616ea26d366546d44120bd4f97eb3
6
+ metadata.gz: f06a8bc128241b4e50c72ccc9e7a72944b705991d6f52b65a1276042f78bfd50d19cd8f971a717fdb3699b7bb93bc136fc44f24b4202f2aff9f98f295e20198f
7
+ data.tar.gz: 2e115414aab91238cc1ad46255c5ca407bbcb786a41d12626671d4e8cb9a93d34a455a23d41ab2bf90d52e9c5a4a10e51a6686a240cc5fd642028e5111167c8c
@@ -0,0 +1,702 @@
1
+ ## ruby-dnnのAPIリファレンスです。
2
+
3
+ # module DNN
4
+ ruby-dnnの名前空間をなすモジュールです。
5
+
6
+
7
+ # class Model
8
+ ニューラルネットワークのモデルを作成するクラスです。
9
+
10
+ ## 【Singleton methods】
11
+
12
+ ## def self.load(file_name)
13
+ marshalファイルを読み込み、モデルを作成します。
14
+ ### arguments
15
+ * String file_name
16
+ 読み込むmarshalファイル名。
17
+ ### return
18
+ なし。
19
+
20
+ ## 【Instance methods】
21
+
22
+ ## def initialize
23
+ コンストラクタ。
24
+ ### arguments
25
+ なし。
26
+
27
+ ## def save(file_name)
28
+ モデルをmarshalファイルに保存します。
29
+ ### arguments
30
+ * String file_name
31
+ 書き込むファイル名。
32
+ ### return
33
+ なし。
34
+
35
+ ## def <<(layer)
36
+ モデルにレイヤーを追加します。
37
+ ### arguments
38
+ * Layer layer
39
+ 追加するレイヤー。
40
+ ### return
41
+ Model
42
+ 自身のモデルのインスタンス。
43
+
44
+ ## def compile(optimizer)
45
+ モデルをコンパイルします。
46
+ ### arguments
47
+ * Optimizer optimizer
48
+ モデルが学習に使用するオプティマイザー。
49
+ ### return
50
+ なし。
51
+
52
+ ## def train(x, y, epochs, batch_size: 1, batch_proc: nil, verbose: true, &epoch_proc)
53
+ コンパイルしたモデルを用いて学習を行います。
54
+ ### arguments
55
+ * SFloat x
56
+ トレーニング用入力データ。
57
+ * SFloat y
58
+ トレーニング用出力データ。
59
+ * epochs
60
+ 学習回数。
61
+ * Integer batch_size: 1
62
+ 学習に使用するミニバッチの数。
63
+ * Proc batch_proc: nil
64
+ 一度のバッチ学習が行われる前に呼び出されるprocを登録します。
65
+ * bool verbose: true
66
+ trueを設定すると、学習ログを出力します。
67
+ ### block
68
+ epoch_proc
69
+ 1エポックの学習が終了するたびに呼び出されます。
70
+ ### return
71
+ なし。
72
+
73
+ ## def train_on_batch
74
+ 入力されたバッチデータをもとに、一度だけ学習を行います。
75
+ ### arguments
76
+ * SFloat x
77
+ トレーニング用入力バッチデータ。
78
+ * SFloat y
79
+ トレーニング用出力バッチデータ。
80
+ * Integer batch_size
81
+ 学習に使用するミニバッチの数。
82
+ ### block
83
+ 一度のバッチ学習が行われる前に呼び出されます。
84
+ ### return
85
+ Integer
86
+ 損失関数の値を返します。
87
+
88
+ ## def test(x, y, batch_size = nil, &batch_proc)
89
+ 学習結果をもとにテストを行います。
90
+ ### arguments
91
+ * SFloat x
92
+ テスト用入力データ。
93
+ * SFloat y
94
+ テスト用出力データ。
95
+ * batch_size
96
+ ミニバッチの数。学習を行っていないモデルのテストを行いたい場合等に使用します。
97
+ ### block
98
+ 一度のバッチ学習が行われる前に呼び出されます。
99
+ ### return
100
+ Float
101
+ テスト結果の認識率を返します。
102
+
103
+ ## def accurate(x, y, batch_size = nil, &batch_proc)
104
+ 学習結果をもとに認識を返します。
105
+ ### arguments
106
+ * SFloat x
107
+ テスト用入力データ。
108
+ * SFloat y
109
+ テスト用出力データ。
110
+ * batch_size
111
+ ミニバッチの数。学習を行っていないモデルのテストを行いたい場合等に使用します。
112
+ ### block
113
+ 一度のバッチ学習が行われる前に呼び出されます。
114
+ ### return
115
+ Float
116
+ テスト結果の認識率を返します。
117
+
118
+ ## def predict(x)
119
+ モデルを使用して、結果の推論を行います。
120
+ ### arguments
121
+ * SFloat x
122
+ 推論用入力データ。
123
+ ### return
124
+ SFloat
125
+ 推論結果を返します。
126
+
127
+
128
+ # module Layers
129
+ レイヤーの名前空間をなすモジュールです。
130
+
131
+
132
+ # class Layer
133
+ 全てのレイヤーのスーパークラスです。
134
+
135
+ ## 【Instance methods】
136
+
137
+ ## def init(model)
138
+ モデルのコンパイル時に、レイヤーを初期化するために使用されます。
139
+ ### arguments
140
+ * Model model
141
+ レイヤーを持つモデルを登録します。
142
+ ### return
143
+ なし。
144
+
145
+ ## abstruct def forward(x)
146
+ 順方向伝搬を行うメソッドです。Layerクラスを継承するクラスは、このメソッドを実装する必要があります。
147
+ ### arguments
148
+ * SFloat x
149
+ 入力データ。
150
+ ### return
151
+ SFloat
152
+ 出力データ。
153
+
154
+ ## abstruct def backward(dout)
155
+ 逆方向伝搬を行うメソッドです。Layerクラスを継承するクラスは、このメソッドを実装する必要があります。
156
+ ### arguments
157
+ * SFloat dout
158
+ 逆方向から伝搬してきた微分値。
159
+ ### return
160
+ SFloat
161
+ 逆方向に伝搬する微分値。
162
+
163
+ ## def shape
164
+ レイヤーの形状を取得するメソッドです。
165
+ ### arguments
166
+ なし。
167
+ ### return
168
+ Array
169
+ レイヤーの形状。Layerクラスのshapeメソッドでは、前レイヤーの形状を返却します。
170
+
171
+ ## def prev_layer
172
+ 前のレイヤーを取得します。
173
+ ### arguments
174
+ なし。
175
+ ### return
176
+ Layer
177
+ 前のレイヤー。
178
+
179
+
180
+ # class HasParamLayer < Layer
181
+ 学習可能なパラメータを持つ全てのレイヤーのスーパークラスです。
182
+
183
+ ## 【Instance methods】
184
+ ## def initialize
185
+ コンストラクタ
186
+ ### arguments
187
+ なし。
188
+
189
+ ## override def init(model)
190
+ Layerクラスからオーバーライドされたメソッドです。
191
+ init_paramの呼び出しを行います。
192
+
193
+ ## def update
194
+ オプティマイザーを用いてパラメータの更新を行います。
195
+ ### arguments
196
+ なし。
197
+ ### return
198
+ なし。
199
+
200
+ ## private abstruct def init_params
201
+ 更新可能なパラメータを初期化します。HasParamLayerクラスを継承するクラスは、このメソッドを実装する必要があります。
202
+ ### arguments
203
+ なし。
204
+ ### return
205
+ なし。
206
+
207
+
208
+ # class InputLayer < Layer
209
+ 入力層に該当するレイヤーです。モデルの先頭レイヤーは、必ずこのクラスのインスタンスでなければなりません。
210
+
211
+ ## 【Properties】
212
+ ## attr_reaedr :shape
213
+ SFloat shape
214
+ コンストラクタで設定されたshapeを取得します。
215
+
216
+ ## 【Instance methods】
217
+ ## def initialize(dim_or_shape)
218
+ コンストラクタ
219
+ ### arguments
220
+ * Integer|Array dim_or_shape
221
+ 入力層のdimentionまたはshapeを指定します。引数がIntegerだとdimentionとみなし、Arrayだとshapeとみなします。
222
+
223
+ ## override def forward(x)
224
+ 入力値をそのまま順方向に伝搬します。
225
+
226
+ ## override def backward(dout)
227
+ 逆方向から伝搬してきた微分値をそのまま逆方向に伝搬します。
228
+
229
+
230
+ # class Dense
231
+ 全結合レイヤーを扱うクラスです。
232
+
233
+ ## 【propaty】
234
+ ## attr_reader :num_nodes
235
+ Integer
236
+ レイヤーのノード数を取得します。
237
+
238
+ ## attr_reader :weight_decay
239
+ Float
240
+ 重み減衰の係数を取得します。
241
+
242
+ ## 【Instance methods】
243
+ ## def initialize(num_nodes, weight_initializer: nil, bias_initializer: nil, weight_decay: 0)
244
+ コンストラクタ。
245
+ ### arguments
246
+ * Integer num_nodes
247
+ レイヤーのノード数を設定します。
248
+ * Initializer weight_initializer: nil
249
+ 重みの初期化に使用するイニシャライザーを設定します
250
+ nilを指定すると、RandomNormalイニシャライザーが使用されます。
251
+ * Initializer bias_initializer: nil
252
+ バイアスの初期化に使用するイニシャライザーを設定します。
253
+ nilを指定すると、Zerosイニシャライザーが使用されます。
254
+ * Float weight_decay: 0
255
+ 重み減衰の係数を設定します。
256
+
257
+ ## override def forward(x)
258
+ ノードを順方向に伝搬します。
259
+
260
+ ## override def backward(dout)
261
+ ノードを逆方向に伝搬します。
262
+
263
+ ## override def shape
264
+ [ノード数]をshapeとして返却します。
265
+
266
+
267
+ # class Conv2D < HasParamLayer
268
+ 畳み込みレイヤーを扱うクラスです。
269
+
270
+ ## 【Instance methods】
271
+ ## def initialize(num_filters, filter_height, filter_width, weight_initializer: nil, bias_initializer: nil, strides: [1, 1], padding 0, weight_decay: 0)
272
+ コンストラクタ。
273
+ ### arguments
274
+ * Integer num_filters
275
+ 出力するフィルターの枚数
276
+ * Integer filter_height
277
+ フィルターの縦の長さ
278
+ * Integer filter_width
279
+ フィルターの横の長さ
280
+ * Initializer weight_initializer: nil
281
+ 重みの初期化に使用するイニシャライザーを設定します
282
+ nilを指定すると、RandomNormalイニシャライザーが使用されます。
283
+ * Initializer bias_initializer: nil
284
+ バイアスの初期化に使用するイニシャライザーを設定します。
285
+ * Array<Integer> strides: [1, 1]
286
+ 畳み込みを行う際のストライドの単位を指定します。配列の要素0でy軸方向のストライドを設定し、要素1でx軸方向のストライドを設定します。
287
+ * Integer padding: 0
288
+ イメージに対してゼロパディングを行う単位を指定します。
289
+ * Float weight_decay: 0
290
+ 重み減衰を行うL2正則化項の強さを設定します。
291
+
292
+ ## override def init(model)
293
+ モデルのコンパイル時に、レイヤーを初期化するために使用されます。
294
+
295
+ ## override def forward(x)
296
+ イメージにフィルターを適用して順方向に伝搬します。
297
+
298
+ ## override def backward(dout)
299
+ フィルターが適用されたイメージを変換して、逆方向に伝搬します。
300
+
301
+ ## override def shape
302
+ 畳み込み後のイメージの次元を返します。
303
+
304
+
305
+ # class MaxPool2D < Layer
306
+ maxプーリングを行うレイヤーです。
307
+
308
+ ## 【Instance methods】
309
+ ## def initialize(pool_height, pool_width, strides: nil, padding: 0)
310
+ コンストラクタ。
311
+ ### arguments
312
+ * Integer pool_height
313
+ プーリングを行う縦の長さ。
314
+ * Integer pool_width
315
+ プーリングを行う横の長さ。
316
+ * Array<Integer> strides: nil
317
+ 畳み込みを行う際のストライドの単位を指定します。配列の要素0でy軸方向のストライドを設定し、要素1でx軸方向のストライドを設定します。なお、nilが設定された場合は、[pool_height, pool_width]がstridesの値となります。
318
+ * Integer padding: 0
319
+ イメージに対してゼロパディングを行う単位を指定します。
320
+
321
+ ## override def init(model)
322
+ モデルのコンパイル時に、レイヤーを初期化するために使用されます。
323
+
324
+ ## override def forward(x)
325
+ イメージにプーリングを行い、順方向に伝搬します。
326
+
327
+ ## override def backward(dout)
328
+ プーリングされたイメージを変換し、逆方向に伝搬します。
329
+
330
+ ## override def shape
331
+ プーリング後のイメージのshapeを返します。
332
+
333
+
334
+ # class Flatten
335
+ N次元のデータを平坦化します。
336
+
337
+ ## 【Instance methods】
338
+ ## override def forward(x)
339
+ データを平坦化して、順方向に伝搬します。
340
+
341
+ ## override def backward(dout)
342
+ データを元の形状に戻し、逆方向に伝搬します。
343
+
344
+ ## override def shape
345
+ 前レイヤーの形状を平坦化して返します。
346
+
347
+
348
+ # class Reshape < Layer
349
+ データの形状を変更します。
350
+
351
+ ## 【Instance methods】
352
+ ## def initialize(shape)
353
+ コンストラクタ。
354
+ ### arguments
355
+ * Array<Integer> shape
356
+ データの形状を変更するshapeです。
357
+
358
+ ## override def forward(x)
359
+ データをコンストラクタで指定したshapeにreshapeして、順方向に伝搬します。
360
+
361
+ ## override def backward(dout)
362
+ データを元のshapeにreshapeして、逆方向に伝搬します。
363
+
364
+ # class OutputLayer < Layer
365
+ 出力層に該当するレイヤーです。出力層の活性化関数は、全てこのクラスを継承する必要があります。
366
+
367
+ ## abstruct def backward(y)
368
+ 出力層の活性化関数と損失関数を合わせたものを微分した導関数を用いて、教師データの出力データを逆方向に伝搬します。
369
+ ### arguments
370
+ SFloat y
371
+ 出力データ。
372
+ ### return
373
+ 出力層の活性化関数と損失関数の微分値。
374
+
375
+ ## abstruct def loss
376
+ 損失関数の値を取得します。
377
+ ### arguments
378
+ SFloat y
379
+ 出力データ。
380
+ ### return
381
+ 損失関数の値。
382
+
383
+ ## def ridge
384
+ L2正則化係数を用いて、L2正則化項の値を計算して取得します。
385
+ ### arguments
386
+ なし。
387
+ ### return
388
+ SFloat
389
+ L2正則化項の値を取得します。
390
+
391
+
392
+ # class Dropout
393
+ 学習の際に、一部のノードを非活性化させるクラスです。
394
+
395
+ ## def initialize(dropout_ratio)
396
+ コンストラクタ。
397
+ ### arguments
398
+ * Float dropout_ration
399
+ ノードを非活性にする割合。
400
+
401
+ ## abstruct def forward(x)
402
+ 一部のノードを非活性にした上で、順方向に伝搬します。
403
+
404
+ ## abstruct def backward(dout)
405
+ 一部の非活性のノード以外の全てのノードを逆方向に伝搬します。
406
+
407
+ # class BatchNormalization < HasParamLayer
408
+ ミニバッチ単位でのデータの正規化を行います。
409
+
410
+ ## override def forward(x)
411
+ 正規化したデータを順方向に伝搬します。
412
+
413
+ ## override def backward(dout)
414
+ 正規化したデータを微分して、逆方向に伝搬します。
415
+
416
+ # module Activations
417
+ 活性化関数のレイヤーの名前空間をなすモジュールです。
418
+
419
+ # module SigmoidFunction
420
+ シグモイド関数を提供するモジュールです。
421
+
422
+ ## def forward(x)
423
+ シグモイド関数の値を順方向に伝搬します。
424
+ ### arguments
425
+ SFloat x
426
+ シグモイド関数の引数。
427
+ ### return
428
+ SFloat
429
+ シグモイド関数の戻り値
430
+
431
+
432
+ # class Sigmoid < Layer
433
+ ## include SigmoidFunction
434
+ シグモイド関数のレイヤーです。
435
+
436
+ ## override def forward(x)
437
+ シグモイド関数の値を順方向に伝搬します。
438
+
439
+ ## def backward(dout)
440
+ ### arguments
441
+ SFloat dout
442
+ シグモイド関数の導関数を適用した値を逆伝搬する。
443
+ ### return
444
+ SFloat
445
+ シグモイド関数の導関数を適用した逆伝搬の値。
446
+
447
+
448
+ # class Tanh < Layer
449
+ tanh関数のレイヤーです。
450
+ ## def forward(x)
451
+ tanh関数の値を順方向に伝搬します。
452
+ ### arguments
453
+ SFloat x
454
+ tanh関数の引数。
455
+ ### return
456
+ SFloat
457
+ tanh関数の戻り値
458
+
459
+ ## def backward(dout)
460
+ ### arguments
461
+ SFloat dout
462
+ tanh関数の導関数を適用した値を逆伝搬する。
463
+ ### return
464
+ SFloat
465
+ tanh関数の導関数を適用した逆伝搬の値。
466
+
467
+
468
+ # class ReLU < Layer
469
+ ランプ関数のレイヤーです。
470
+ ## def forward(x)
471
+ ランプ関数の値を順方向に伝搬します。
472
+ ### arguments
473
+ SFloat x
474
+ ランプ関数の引数。
475
+ ### return
476
+ SFloat
477
+ ランプ関数の戻り値
478
+
479
+ ## def backward(dout)
480
+ ### arguments
481
+ SFloat dout
482
+ ランプ関数の導関数を適用した値を逆伝搬する。
483
+ ### return
484
+ SFloat
485
+ ランプ関数の導関数を適用した逆伝搬の値。
486
+
487
+
488
+ # class LeakyReLU < Layer
489
+ LeakyReLU関数のレイヤーです。
490
+ ## def forward(x)
491
+ LeakyReLU関数の値を順方向に伝搬します。
492
+ ### arguments
493
+ SFloat x
494
+ LeakyReLU関数の引数。
495
+ ### return
496
+ SFloat
497
+ LeakyReLU関数の戻り値
498
+
499
+ ## def backward(dout)
500
+ ### arguments
501
+ SFloat dout
502
+ LeakyReLU関数の導関数を適用した値を逆伝搬する。
503
+ ### return
504
+ SFloat
505
+ LeakyReLU関数の導関数を適用した逆伝搬の値。
506
+
507
+
508
+ # class IdentityWithLoss < OutputLayer
509
+ 恒等関数と二乗誤差関数を合わせた出力層のレイヤーです。
510
+ ## override def forward(x)
511
+ データをそのまま順方向に伝搬します。
512
+ ## override def backward(y)
513
+ 恒等関数と二乗誤差関数を合わせたものを微分した導関数を用いて、教師データの出力データを逆方向に伝搬します。
514
+
515
+
516
+ # class SoftmaxWithLoss < OutputLayer
517
+ ソフトマックス関数とクロスエントロピー誤差関数を合わせた出力層のレイヤーです。
518
+ ## override def forward(x)
519
+ ソフトマックス関数の値を順方向に伝搬します。
520
+ ## override def backward(y)
521
+ ソフトマックス関数とクロスエントロピー誤差関数を合わせたものを微分した導関数を用いて、教師データの出力データを逆方向に伝搬します。
522
+
523
+
524
+ # class SigmoidWithLoss < OutputLayer
525
+ シグモイド関数とバイナリクロスエントロピー誤差関数を合わせた出力層のレイヤーです。
526
+ ## override def forward(x)
527
+ シグモイド関数の値を順方向に伝搬します。
528
+ ## override def backward(y)
529
+ シグモイド関数とバイナリクロスエントロピー誤差関数を合わせたものを微分した導関数を用いて、教師データの出力データを逆方向に伝搬します。
530
+
531
+
532
+ # module Initializers
533
+ 全てのInitializerの名前空間をなすモジュールです。
534
+
535
+
536
+ # class Initializer
537
+ 全てのInitializeクラスのスーパークラスです。
538
+
539
+ ## def init_param(layer, param_key, param)
540
+ レイヤーの持つパラメータを更新します。
541
+ ### arguments
542
+ * HasParamLayer layer
543
+ 更新対象のパラメータを持つレイヤーを指定します。
544
+ * Symbol param_key
545
+ 更新す対象のパラメータの名前を指定します。
546
+ * SFloat param
547
+ 更新するパラメータです。
548
+
549
+
550
+ # class Zeros < Initializer
551
+ パラメータを0で初期化します。
552
+
553
+ ## override def init_param(layer, param_key)
554
+ レイヤーの持つパラメータを0で初期化します。
555
+
556
+ # class RandomNormal < Initializer
557
+ パラメータを正規分布による乱数で初期化します。
558
+
559
+ ## def initialize(mean = 0, std = 0.05)
560
+ ### arguments
561
+ Float mean = 0
562
+ 正規分布の平均。
563
+ Float std = 0.05
564
+ 正規分布の分散。
565
+
566
+ ## override def init_param(layer, param_key)
567
+ レイヤーの持つパラメータを正規分布による乱数で初期化します。
568
+
569
+
570
+ # class Xavier < Initializer
571
+ パラメータをXavierの初期値で初期化します。
572
+
573
+ ## override def init_param(layer, param_key)
574
+ レイヤーの持つパラメータをXavierの初期値で初期化します。
575
+
576
+
577
+ # class He < Initializer
578
+ パラメータをHeの初期値で初期化します。
579
+
580
+ ## override def init_param(layer, param_key)
581
+ レイヤーの持つパラメータをHeの初期値で初期化します。
582
+
583
+
584
+ # module Optimizers
585
+ 全てのOptimizerの名前空間をなすモジュールです。
586
+
587
+
588
+ # class Optimizer
589
+ 全てのOptimizerのスーパークラスです。
590
+
591
+ ## 【Properties】
592
+
593
+ ## attr_accessor :learning_rate
594
+ Float learning_rate
595
+ 学習率のプロパティです。
596
+
597
+ ## 【Instance methods】
598
+
599
+ ## def initialize(learning_rate)
600
+ コンストラクタ。
601
+ ### arguments
602
+ Float learning_rate
603
+ Optimizerの学習率。
604
+
605
+ ## abstruct def update(layer)
606
+ layerのgradsを元に、layerのparamsを更新します。
607
+ ### arguments
608
+ Layer layer
609
+ paramsを更新するレイヤー。
610
+ ### return
611
+ なし。
612
+
613
+
614
+ # class SGD < Optimizer
615
+ SGDによるオプティマイザです。
616
+
617
+ ## 【Properties】
618
+
619
+ ## attr_accessor :momentum
620
+ Float momentum
621
+ モーメンタム係数。
622
+
623
+ ## 【Instance methods】
624
+
625
+ ## override def initialize(learning_rate = 0.01, momentum: 0)
626
+ コンストラクタ。
627
+ ### arguments
628
+ Float learning_rate
629
+ 学習率。
630
+ Float momentum
631
+ モーメンタム係数。
632
+
633
+
634
+ # class AdaGrad < Optimizer
635
+ AdaGradによるオプティマイザです。
636
+
637
+
638
+ # class RMSProp < Optimizer
639
+ RMSPropによるオプティマイザです。
640
+
641
+ ## 【Properties】
642
+
643
+ ## attr_accessor :muse
644
+ Float muse
645
+ 指数平均移動のための係数。
646
+
647
+
648
+ # class Adam < Optimizer
649
+ Adamによるオプティマイザです。
650
+
651
+ ## 【Properties】
652
+
653
+ ## attr_accessor :beta1
654
+ Float beta1
655
+ 指数平均移動のための係数1。
656
+
657
+ ## attr_accessor :beta2
658
+ Float beta2
659
+ 指数平均移動のための係数2。
660
+
661
+
662
+ # module Util
663
+ ユーティリティ関数を提供します。
664
+
665
+ ## 【Singleton methods】
666
+
667
+ ## def self.get_minibatch(x, y, batch_size)
668
+ batch_size分のミニバッチを取得します。
669
+ ### arguments
670
+ SFloat x
671
+ 教師データの入力データ。
672
+ SFloat y
673
+ 教師データの出力データ。
674
+ Integer batch_size
675
+ ミニバッチのサイズ。
676
+ ### return
677
+ Array
678
+ [xのミニバッチ, yのミニバッチ]の形式の配列を返します。
679
+
680
+ ## def self.to_categorical(y, num_classes, type = nil)
681
+ ラベルをnum_classesのベクトルにカテゴライズします。
682
+ ### arguments
683
+ SFloat y
684
+ 教師データの出力データ。
685
+ Integer num_classes
686
+ カテゴライズするクラス数。
687
+ NArray narray_type = nil
688
+ カテゴライズしたNArrayデータの型。nilを指定すると、yの型を使用します。
689
+ ### return
690
+ NArray
691
+ カテゴライズされたNArrayのインスタンス。
692
+
693
+ ## def self.numerical_grad(x, func)
694
+ 引数で渡された関数を数値微分します。
695
+ ### arguments
696
+ SFloat x
697
+ funcの引数。
698
+ Proc|Method func
699
+ 数値微分を行う対象の関数。
700
+ ### return
701
+ SFloat
702
+ 数値微分した結果の値。
@@ -119,7 +119,10 @@ module DNN
119
119
  end
120
120
 
121
121
 
122
+ #private module
122
123
  module Convert
124
+ private
125
+
123
126
  def im2col(img, out_h, out_w, fh, fw, strides)
124
127
  bs, fn = img.shape[0..1]
125
128
  col = SFloat.zeros(bs, fn, fh, fw, out_h, out_w)
@@ -303,7 +306,7 @@ module DNN
303
306
  private
304
307
 
305
308
  def ridge
306
- @model.layers.select { |layer| layer.is_a?(Dense) }
309
+ @model.layers.select { |layer| layer.respond_to?(:weight_decay) }
307
310
  .reduce(0) { |sum, layer| layer.weight_decay * (layer.params[:weight]**2).sum }
308
311
  end
309
312
  end
@@ -16,6 +16,8 @@ module DNN
16
16
  end
17
17
 
18
18
  def save(file_name)
19
+ dir_name = file_name.match(%r`(.*)/.+$`)[1]
20
+ Dir.mkdir(dir_name) unless Dir.exist?(dir_name)
19
21
  File.binwrite(file_name, Marshal.dump(self))
20
22
  end
21
23
 
@@ -24,6 +26,7 @@ module DNN
24
26
  raise DNN_TypeError.new("layer is not an instance of the DNN::Layers::Layer class.")
25
27
  end
26
28
  @layers << layer
29
+ self
27
30
  end
28
31
 
29
32
  def compile(optimizer)
@@ -1,3 +1,3 @@
1
1
  module DNN
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
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.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - unagiootoro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-01 00:00:00.000000000 Z
11
+ date: 2018-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: numo-narray
@@ -92,6 +92,7 @@ extra_rdoc_files: []
92
92
  files:
93
93
  - ".gitignore"
94
94
  - ".travis.yml"
95
+ - API-Reference.ja.md
95
96
  - CODE_OF_CONDUCT.md
96
97
  - Gemfile
97
98
  - LICENSE.txt