TypeError: new(): argument 'size' must be tuple of ints, but found element of type float at pos 2
如上,这个bug是我用python3跑python2程序的时候出现的bug
# Down-Sampling
curr_dim = conv_dim
for i in range(repeat_num):
layers.append(nn.Conv2d(curr_dim, int(curr_dim/2), kernel_size=4, stride=2, padding=1, bias=False))#int(curr_dim/2)
layers.append(nn.InstanceNorm2d(int(curr_dim/2), affine=True))
layers.append(nn.ReLU(inplace=True))
curr_dim = curr_dim / 2
我在如上的地方,第四行报错。但是明明已经将pos2 的参数改成了int还是报错。后来发现
这个pos 2 指的不是 nn.Conv2d()函数。而是更底层的一个输入(N, C_in,H,W) 。其参数C_in 在第二个位置。也即是我此处的第一个参数应该设置成int。因为是for循环中循环的赋值了float。所以很容易错误的当做是第二个参数见了鬼了。啊 搞定