【发布时间】:2020-09-11 18:12:50
【问题描述】:
我在 pytorch 中有一个包含 64 个元素的张量,我想将它转换为一个包含 32 个元素的复数张量。顺序对我来说很重要,一切都应该在 PyTorch 中,所以我可以在我的自定义损失函数中使用它: 我的主张量 (W) 的前半部分是我的实数,后半部分是我的虚数。所以我的最终张量应该是:
W_final = 张量(W[0]+jW[32], W[1]+jW[33], W[2]+jW[34], W[3]+jW[35], ... , W[31]+jW[63])
我试过这种方法:
import torch
W_1 = = torch.reshape(W,(2,32)) #reshape W with shape (64) to W_1 with shape (2,32)
W_2 = torch.transpose(W_1,0,1) #transpose W_1 to W_2 with shape (32,2), so I can use view_as_complex
W_final = torch.view_as_complex(W_2)
问题在于,使用转置,步幅也会发生变化,我收到此错误:
RuntimeError: Tensor must have a last dimension with stride 1
知道我该如何应对步态吗?或者有什么方法可以用与 numpy 相同的不同订单进行重塑? 或任何其他方式转换为复杂?
【问题讨论】:
-
欢迎来到 Stack Overflow!
标签: python pytorch complex-numbers stride