如何在 Theano 中进行快速最近邻上采样?
How to do fast nearest-neighbor upsampling in Theano?
目前我正在使用这段代码,但是它真的很慢:
def resizeNN(inp, scale):
b, ch, row, col = inp.shape
out = T.zeros((b, ch, row * scale, col * scale))
for y range(scale):
for x range(scale):
out = T.inc_subtensor(out[:, :, y::scale, x::scale], inp)
return out
有什么办法可以加快速度吗?
此代码更加矢量化。我不确定重塑的速度有多快。
def resizeNN(inp, scale):
inp_shp = T.shape(inp)
return T.tile(inp.dimshuffle(0,1,2,3,'x','x'),
(scale,scale)).transpose(
0,1,2,4,3,5).reshape(
inp_shp[0], inp_shp[1],
inp_shp[2]*scale, inp_shp[3]*scale)
目前我正在使用这段代码,但是它真的很慢:
def resizeNN(inp, scale):
b, ch, row, col = inp.shape
out = T.zeros((b, ch, row * scale, col * scale))
for y range(scale):
for x range(scale):
out = T.inc_subtensor(out[:, :, y::scale, x::scale], inp)
return out
有什么办法可以加快速度吗?
此代码更加矢量化。我不确定重塑的速度有多快。
def resizeNN(inp, scale):
inp_shp = T.shape(inp)
return T.tile(inp.dimshuffle(0,1,2,3,'x','x'),
(scale,scale)).transpose(
0,1,2,4,3,5).reshape(
inp_shp[0], inp_shp[1],
inp_shp[2]*scale, inp_shp[3]*scale)