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

not ready

上级 b7b10608
...@@ -380,7 +380,7 @@ class DownsampleFactorMaxGrad(Op): ...@@ -380,7 +380,7 @@ class DownsampleFactorMaxGrad(Op):
def pad_img(x): def pad_img(x):
w = x.shape[3] w = x.shape[3]
h = x.shape[2] h = x.shape[2]
fill = x.min()-1 fill = x.min()-1.
t = numpy.ones((x.shape[0],x.shape[1],1,1)) t = numpy.ones((x.shape[0],x.shape[1],1,1))
ud_bar = (numpy.zeros((pad_h, w)) + fill)[ ud_bar = (numpy.zeros((pad_h, w)) + fill)[
numpy.newaxis, numpy.newaxis,:,:] * t numpy.newaxis, numpy.newaxis,:,:] * t
...@@ -393,9 +393,9 @@ class DownsampleFactorMaxGrad(Op): ...@@ -393,9 +393,9 @@ class DownsampleFactorMaxGrad(Op):
w = x.shape[3] w = x.shape[3]
h = x.shape[2] h = x.shape[2]
r_st = pad_h r_st = pad_h
r_end = h + pad_h r_end = g.shape[2] - pad_h
c_st = pad_w c_st = pad_w
c_end = w + pad_w c_end = g.shape[3] - pad_w
return g[:,:,r_st:r_end,c_st:c_end] return g[:,:,r_st:r_end,c_st:c_end]
y = pad_img(x) y = pad_img(x)
gx = numpy.zeros_like(y) gx = numpy.zeros_like(y)
...@@ -411,7 +411,6 @@ class DownsampleFactorMaxGrad(Op): ...@@ -411,7 +411,6 @@ class DownsampleFactorMaxGrad(Op):
for col_ind in xrange(col_st, col_end): for col_ind in xrange(col_st, col_end):
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]
import ipdb; ipdb.set_trace()
gx = unpad(gx) gx = unpad(gx)
gx_stg[0] = gx gx_stg[0] = gx
......
...@@ -73,14 +73,10 @@ class TestDownsampleFactorMax(utt.InferShapeTester): ...@@ -73,14 +73,10 @@ class TestDownsampleFactorMax(utt.InferShapeTester):
ii_st = i * st[0] ii_st = i * st[0]
ii_end = __builtin__.min(ii_st + ds[0], img_rows) ii_end = __builtin__.min(ii_st + ds[0], img_rows)
for j in range(output_val.shape[-1]): for j in range(output_val.shape[-1]):
try: jj_st = j * st[1]
jj_st = j * st[1] jj_end = __builtin__.min(jj_st + ds[1], img_cols)
jj_end = __builtin__.min(jj_st + ds[1], img_cols) patch = y[k][ii_st:ii_end, jj_st:jj_end]
patch = y[k][ii_st:ii_end, jj_st:jj_end] output_val[k][i, j] = numpy.max(patch)
output_val[k][i, j] = numpy.max(patch)
except Exception,e:
import ipdb; ipdb.set_trace()
print
return output_val return output_val
@staticmethod @staticmethod
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论