如何解决PyTorch 1.8.1 中复杂数据到神经网络
我正在尝试使用复数值数据作为测试神经网络的输入。从 notes 版本(第 2 点)开始,据说 PyTorch 1.8.0 支持复杂的 autograd。我用来测试此功能的代码如下。我使用的是 1.8.1 版本的库。
import torch
from torch import nn,optim
class ComplexTest(nn.Module):
def __init__(self):
super(ComplexTest,self).__init__()
self.fc1 = nn.Linear(10,20)
self.fc2 = nn.Linear(20,10)
self.relu = nn.ReLU()
def forward(self,inputs):
return self.fc2(self.relu(self.fc1(inputs)))
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
complex_test = ComplexTest().to(device)
complex_test.train()
opt = optim.Adam(complex_test.parameters())
mse_loss = nn.MSELoss()
for _ in range(100):
opt.zero_grad()
inp = torch.randn((1000,10),dtype=torch.cfloat).to(device)
op = complex_test(inp)
loss = mse_loss(op,inp)
loss.backward()
opt.step()
print(loss.item())
但这会导致错误
预期标量类型为 Float 但发现 ComplexFloat
这是不支持的还是我读错了文档?谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。