从张量收减标量和不一致的张量大小'在pytorch

时间:2017-06-19 13:10:57

标签: torch subtraction pytorch

我使用的是pytorch而我的变量是

x = [torch.FloatTensor of size 1x3x32x32]
mean = Variable containing:
1.00000e-02 *
  2.0518
[torch.FloatTensor of size 1]

我想要做的是通过执行

从x中减去标量均值
x = x - mean

但是,我收到此错误:

RuntimeError: inconsistent tensor size at /py/conda-
bld/pytorch_1493670682084/work/torch/lib/TH/generic/THTensorMath.c:831

我做错了什么? 非常感谢

1 个答案:

答案 0 :(得分:2)

如果mean是真正的标量,那么你所尝试的只会起作用,即float()(在这种情况下)而不是torch.FloatTensor of size 1。您可以从mean中提取真正的标量,也可以将mean展开为x的大小,以便执行减法操作。

要从float中提取mean,请执行:

x = x - mean[0]

要将mean扩展为x的大小,请执行:

x = x - mean.expand_as(x)

请注意,这两种方法都会减去张量中每个元素的均值。