【问题标题】:subtraction of scalar from tensor yields 'inconsistent tensor size' in pytorch从张量中减去标量会在 pytorch 中产生“不一致的张量大小”
【发布时间】:2017-06-19 13:10:57
【问题描述】:

我正在使用 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

我做错了什么? 非常感谢

【问题讨论】:

    标签: torch subtraction pytorch


    【解决方案1】:

    只有当 mean 是一个真正的标量时,你正在尝试的东西才有效,即 float()(在这种情况下)而不是 torch.FloatTensor of size 1。您可以从mean 中提取一个真正的标量,或者将mean 扩展为x 的大小以执行减法。

    要从mean 中提取float,请执行以下操作:

    x = x - mean[0]
    

    要将mean 扩展为x 的大小,请执行以下操作:

    x = x - mean.expand_as(x)
    

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

    【讨论】:

    • 将均值扩展到 x 的大小有效!从均值中提取真正的标量没有,但我听说这个广播功能是最近才添加的,所以我必须尽快更新我的 pytorch 版本。谢谢
    猜你喜欢
    • 2021-10-11
    • 2018-11-16
    • 2021-10-17
    • 1970-01-01
    • 2020-08-31
    • 2019-06-24
    • 1970-01-01
    • 2021-11-18
    • 2017-01-20
    相关资源
    最近更新 更多