【问题标题】:How can I cast a tensor to the complex type in Pytorch?如何将张量转换为 Pytorch 中的复杂类型?
【发布时间】:2020-02-19 06:47:53
【问题描述】:

我想用 Pytorch 做一些量子力学计算,其中的数量有时很复杂。我想知道如何将现有的实张量转换为复杂类型。

【问题讨论】:

    标签: pytorch


    【解决方案1】:

    PyTorch 确实有 complex number support

    试试这个:

    import torch
    
    a = torch.tensor([1.0, 2.0], dtype=torch.double)
    b = a.type(torch.complex64)
    

    【讨论】:

    • 试一试,得到消息:“RuntimeError: Complex dtype not supported。”那是在 Pytorch 1.5 中。也许它是在夜间实施的?
    • @larspars 你的代码是什么?我认为 1.5.0 中的打印还没有准备好。现在你应该避免直接打印变量。
    • 精确复制粘贴您的代码。深入研究 pytorch 问题,之前似乎支持构建复杂的张量,但由于支持的操作很少,因此他们将其删除。不过他们正在努力。
    • @larspars 嗯,这适用于 PyTorch 1.4,所以也许他们有一个回归。但是最新的 nightly 可以毫无问题地运行上面的代码(加上打印张量)。
    【解决方案2】:

    AFAIK pytorch 不支持复杂的张量。
    您可以使用两个实数来表示一个复数张量。但是,您必须实现所有相关的基本算术运算来支持这些复杂的张量。

    不过,有一个严肃的commitment 将这个重要的功能添加到pytorch,这似乎是一个非常活跃的问题。

    【讨论】:

    • 太伤心了
    • @VladimirVargas 很伤心,但你应该是optimistic
    • 嗨,当前版本(V1.7)仍然如此吗?因为我注意到引入了一个处理复杂值的函数torch.angle..
    猜你喜欢
    • 2022-10-17
    • 2021-02-09
    • 2020-08-05
    • 2019-07-29
    • 2018-04-27
    • 2020-06-27
    • 2021-02-24
    • 2019-05-02
    相关资源
    最近更新 更多