提交 1fd24723 authored 作者: Li's avatar Li

grad still failed

上级 ab6c7a35
......@@ -223,7 +223,7 @@ class DownsampleFactorMax(Op):
# pad the image
fill = x.min()-1
y = numpy.zeros((x.shape[0], x.shape[1], img_rows, img_cols)) + fill
y[:, :, pad_h:-pad_h, pad_w:-pad_w] = x
y[:, :, pad_h:(y.shape[2]-pad_h), pad_w:(y.shape[3]-pad_w)] = x
# max pooling
for n in xrange(x.shape[0]):
for k in xrange(x.shape[1]):
......@@ -369,12 +369,12 @@ class DownsampleFactorMaxGrad(Op):
img_cols = x.shape[-1] + 2 * self.padding[1]
pad_h = self.padding[0]
pad_w = self.padding[1]
# pad the image
fill = x.min()-1
y = numpy.zeros((x.shape[0], x.shape[1], img_rows, img_cols)) + fill
y[:, :, pad_h:-pad_h, pad_w:-pad_w] = x
y[:, :, pad_h:(y.shape[2]-pad_h), pad_w:(y.shape[3]-pad_w)] = x
gx = numpy.zeros_like(y)
for n in xrange(x.shape[0]):
for k in xrange(x.shape[1]):
......@@ -389,7 +389,7 @@ class DownsampleFactorMaxGrad(Op):
if (maxout[n, k, r, c] == y[n, k, row_ind, col_ind]):
gx[n, k, row_ind, col_ind] += gz[n, k, r, c]
# unpad the image
gx = gx[:, :, pad_h:-pad_h, pad_w:-pad_w]
gx = gx[:, :, pad_h:(y.shape[2]-pad_h), pad_w:(y.shape[3]-pad_w)]
gx_stg[0] = gx
def infer_shape(self, node, in_shapes):
......
......@@ -240,10 +240,10 @@ class TestDownsampleFactorMax(utt.InferShapeTester):
def test_DownsampleFactorMaxPaddingStride(self):
ignore_border = True # padding does not support ignore_border=False
rng = numpy.random.RandomState(utt.fetch_seed())
maxpoolsizes = [(3, 3), (4,4), (3,4)]
stridesizes = [(2, 2), (2,2), (1,1)]
paddingsizes = [(2, 2), (1,2), (2,1)]
imgsizes = [(5, 5), (5,5), (5,6)]
maxpoolsizes = [(3, 3), (4,4), (3,4), (4,3)]
stridesizes = [(2, 2), (2,2), (1,1), (1,2)]
paddingsizes = [(2, 2), (1,2), (2,1), (0,0)]
imgsizes = [(5, 5), (5,5), (5,6), (6,5)]
m = 4 # minibatch
c = 10 # channel size
images = tensor.dtensor4()
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论