【问题标题】:How to calculate eingenvalues for each matrix in a 4D tensor?如何计算 4D 张量中每个矩阵的特征值?
【发布时间】:2018-03-24 02:08:11
【问题描述】:

我有一个大小为 [batch_size, channels, height, width]([16, 64, 24, 24]) 的 4D 张量,但我需要计算每个 24x24 矩阵的特征值以获得大小为 2D 的张量[batch_size, channels]([16, 64]),其中每个元素代表对应矩阵的特征值。

【问题讨论】:

    标签: python pytorch eigenvalue tensor


    【解决方案1】:

    没有直接执行此操作的函数。但是,您可以遍历输入张量以构造所需的特征张量,然后对其进行整形。

    # Supposing your tensor is a
    out = []
    for bs in range(a.size(0)):
        for c in range(a.size(1)):
            e, _ = torch.eig(a[bs, c, :, :])
            out.append(torch.max(e))
    out = torch.stack(out).view(a.size(0), a.size(1))
    

    【讨论】:

    • 感谢您的解决方案!
    猜你喜欢
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 2018-10-25
    相关资源
    最近更新 更多