class Chainer::Functions::Pooling::AveragePooling2DGrad
Public Class Methods
new(apool2d)
click to toggle source
# File lib/chainer/functions/pooling/average_pooling_2d.rb, line 39 def initialize(apool2d) @kh = apool2d.kh @kw = apool2d.kw @sy = apool2d.sy @sx = apool2d.sx @ph = apool2d.ph @pw = apool2d.pw @in_shape = apool2d.in_shape @in_dtype = apool2d.in_dtype @apool2d = apool2d end
Public Instance Methods
backward(indexes, grad_outputs)
click to toggle source
# File lib/chainer/functions/pooling/average_pooling_2d.rb, line 62 def backward(indexes, grad_outputs) AveragePooling2D.new([@kh, @kw], stride: [@sy, @sx], pad: [@ph, @pw], cover_all: false).apply(grad_outputs) end
forward(gy)
click to toggle source
# File lib/chainer/functions/pooling/average_pooling_2d.rb, line 51 def forward(gy) h, w = @in_shape[2..-1] shape = gy[0].shape shape.insert(2, 1, 1) gcol = gy[0].reshape(*shape).tile(1, 1, @kh, @kw, 1, 1) gx = Chainer::Utils::Conv.col2im(gcol, @sy, @sx, @ph, @pw, h, w) gx /= @kh * @kw [gx] end