1

我在代码的最后一行出现错误。说“期望一个整数”。实际上这段代码取自 VGGNET。我正在使用 Python 3.6.9。

import theano.tensor as T
batch,in_channels,H,W = T.shape(x)
self.VGGout_resize = 16
xt = x[:,::-1,:,:]
xt = T.set_subtensor(xt[:,0,:,:], xt[:,0,:,:] - 103.939)
xt = T.set_subtensor(xt[:,1,:,:], xt[:,1,:,:] - 116.779)
xt = T.set_subtensor(xt[:,2,:,:], xt[:,2,:,:] - 123.68)
xt = xt[:,:,0:self.VGGout_resize* 
(H/self.VGGout_resize),0:self.VGGout_resize*(W/self.VGGout_resize) ]

“错误结果图像 1” “错误结果图像 2”

4

1 回答 1

0

这可能是因为您正在切片和输出(H/self.VGGout_resize)(W/self.VGGout_resize)可能是非整数。尝试这个:

self.VGGout_resize = 16
xt = x[:,::-1,:,:]
xt = T.set_subtensor(xt[:,0,:,:], xt[:,0,:,:] - 103.939)
xt = T.set_subtensor(xt[:,1,:,:], xt[:,1,:,:] - 116.779)
xt = T.set_subtensor(xt[:,2,:,:], xt[:,2,:,:] - 123.68)
xt = xt[:,:,0:self.VGGout_resize*int(H/self.VGGout_resize),0:self.VGGout_resize*int(W/self.VGGout_resize)]
于 2019-08-20T06:41:20.003 回答