ruby-dnn 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dnn/core/layers.rb +13 -4
- data/lib/dnn/core/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9bd42ca5cbea3b4a3abd984157df19cf87ca2a6ba80a3a76cf155e020582508
|
4
|
+
data.tar.gz: 2be2b617347618bf18d140e1ed4b5ede5d3a0f6540d6bc18217ae9b86c22aa2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9077ebdf09fbc33d5b163c9ef2bd9ec4bb6681b87e5f638db25d6fbc46603ba50a8a6cb81123a42e07984636d2055fae3ed54712f11df815d856854a5845973d
|
7
|
+
data.tar.gz: 5b3c56027727a7dee1f1cbae31c6ddd887d5ea7cf015c1d111942e6c518579ffc607c8c38c13702e77f86ad9b4428d27296287fd3c2b13e02a77992b5360900b
|
data/lib/dnn/core/layers.rb
CHANGED
@@ -188,6 +188,12 @@ module DNN
|
|
188
188
|
img2[true, true, pad...(ih + pad), pad...(iw + pad)] = img
|
189
189
|
img2
|
190
190
|
end
|
191
|
+
|
192
|
+
def back_padding(img, pad)
|
193
|
+
i_end = img.shape[2] - pad
|
194
|
+
j_end = img.shape[3] - pad
|
195
|
+
img[true, true, pad...i_end, pad...j_end]
|
196
|
+
end
|
191
197
|
end
|
192
198
|
|
193
199
|
|
@@ -246,7 +252,8 @@ module DNN
|
|
246
252
|
end
|
247
253
|
@grads[:bias] = dout.sum(0)
|
248
254
|
dcol = dout.dot(@params[:weight].transpose)
|
249
|
-
col2im(dcol, @x_shape, @out_height, @out_width, @filter_height, @filter_width, @strides)
|
255
|
+
dx = col2im(dcol, @x_shape, @out_height, @out_width, @filter_height, @filter_width, @strides)
|
256
|
+
@padding ? back_padding(dx, @padding) : dx
|
250
257
|
end
|
251
258
|
|
252
259
|
def shape
|
@@ -293,11 +300,12 @@ module DNN
|
|
293
300
|
super
|
294
301
|
prev_height, prev_width = prev_layer.shape[1], prev_layer.shape[2]
|
295
302
|
@num_channel = prev_layer.shape[0]
|
296
|
-
@out_height = (prev_height - @pool_height) / @strides[0] + 1
|
297
|
-
@out_width = (prev_width - @pool_width) / @strides[1] + 1
|
303
|
+
@out_height = (prev_height + @padding * 2 - @pool_height) / @strides[0] + 1
|
304
|
+
@out_width = (prev_width + @padding * 2 - @pool_width) / @strides[1] + 1
|
298
305
|
end
|
299
306
|
|
300
307
|
def forward(x)
|
308
|
+
x = padding(x, 2) if @padding > 0
|
301
309
|
@x_shape = x.shape
|
302
310
|
col = im2col(x, @out_height, @out_width, @pool_height, @pool_width, @strides)
|
303
311
|
col = col.reshape(x.shape[0] * @out_height * @out_width * x.shape[1], @pool_height * @pool_width)
|
@@ -311,7 +319,8 @@ module DNN
|
|
311
319
|
dmax = SFloat.zeros(dout.size * pool_size)
|
312
320
|
dmax[@max_index] = dout.flatten
|
313
321
|
dcol = dmax.reshape(dout.shape[0..2].reduce(:*), dout.shape[3] * pool_size)
|
314
|
-
col2im(dcol, @x_shape, @out_height, @out_width, @pool_height, @pool_width, @strides)
|
322
|
+
dx = col2im(dcol, @x_shape, @out_height, @out_width, @pool_height, @pool_width, @strides)
|
323
|
+
@padding ? back_padding(dx, @padding) : dx
|
315
324
|
end
|
316
325
|
|
317
326
|
def shape
|
data/lib/dnn/core/version.rb
CHANGED
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
|
+
version: 0.1.8
|
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-
|
11
|
+
date: 2018-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: numo-narray
|