如何计算4D张量中每个矩阵的eingenvalues?

时间:2018-03-24 02:08:11

标签: python pytorch eigenvalue tensor

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

1 个答案:

答案 0 :(得分:0)

没有直接执行此操作的功能。但是,你可以循环输入张量来构造所需的特征张量,然后重新形成它。

# 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))