【问题标题】:Pytorch/Numpy: Subtract each of N elements from a single matrix, resulting in N matrices?Pytorch/Numpy:从单个矩阵中减去 N 个元素中的每一个,得到 N 个矩阵?
【发布时间】:2022-06-30 21:38:34
【问题描述】:

标题中的问题。有没有一种操作或方法可以在不循环的情况下进行广播?这是一个简单的列表理解示例:

image = torch.tensor([[6, 9], [8.7, 5.5]])
c = torch.tensor([5.7675, 8.8325])

# with list comprehension
desired_result = torch.stack([image - c_i for c_i in c])

# output:
tensor([[[ 0.2325,  3.2325],
         [ 2.9325, -0.2675]],

        [[-2.8325,  0.1675],
         [-0.1325, -3.3325]]])

我已经尝试过重塑“标量数组”,以各种方式获得所需的结果,但没有运气。

【问题讨论】:

    标签: python numpy pytorch


    【解决方案1】:

    不确定torch 是否有outer

    - np.subtract.outer(c.numpy(), image.numpy() )
    

    输出:

    array([[[ 0.23250008,  3.2325    ],
            [ 2.9325    , -0.26749992]],
    
           [[-2.8325005 ,  0.16749954],
            [-0.13250065, -3.3325005 ]]], dtype=float32)
    

    【讨论】:

    • 是的torch.outer 确实存在,但对于多维输入不存在;(
    • 谢谢你们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 2021-07-31
    • 2013-06-23
    • 2021-12-15
    • 1970-01-01
    • 2012-11-04
    相关资源
    最近更新 更多