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

grad still failed

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