提交 218c02f9 authored 作者: Li's avatar Li

more corrections, grad not work still

上级 1fd24723
...@@ -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:(y.shape[2]-pad_h), pad_w:(y.shape[3]-pad_w)] = x y[:, :, pad_h:(img_rows-pad_h), pad_w:(img_cols-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]):
...@@ -374,7 +374,7 @@ class DownsampleFactorMaxGrad(Op): ...@@ -374,7 +374,7 @@ class DownsampleFactorMaxGrad(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:(y.shape[2]-pad_h), pad_w:(y.shape[3]-pad_w)] = x y[:, :, pad_h:(img_rows-pad_h), pad_w:(img_cols-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:(y.shape[2]-pad_h), pad_w:(y.shape[3]-pad_w)] gx = gx[:, :, pad_h:(img_rows-pad_h), pad_w:(img_cols-pad_w)]
gx_stg[0] = gx gx_stg[0] = gx
def infer_shape(self, node, in_shapes): def infer_shape(self, node, in_shapes):
......
...@@ -265,7 +265,7 @@ class TestDownsampleFactorMax(utt.InferShapeTester): ...@@ -265,7 +265,7 @@ class TestDownsampleFactorMax(utt.InferShapeTester):
def test_DownsampleFactorMaxPaddingStride_grad(self): def test_DownsampleFactorMaxPaddingStride_grad(self):
rng = numpy.random.RandomState(utt.fetch_seed()) rng = numpy.random.RandomState(utt.fetch_seed())
imval = rng.rand(10, 10, 10, 10) * 10.0 imval = rng.rand(1, 1, 10, 10) * 10.0
maxpoolsize = (5, 3) maxpoolsize = (5, 3)
stridesize = (3, 2) stridesize = (3, 2)
paddingsize = (2,2) paddingsize = (2,2)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论