Python 3.x 当PyTorch中的特征向量出现一些损失时,如何制作背景词?

Python 3.x 当PyTorch中的特征向量出现一些损失时,如何制作背景词?,python-3.x,pytorch,linear-algebra,eigenvector,Python 3.x,Pytorch,Linear Algebra,Eigenvector,我的损失似乎是 e1, v1 = torch.eig(A) e2, v2 = torch.eig(B) sim = torch.matmul(v1, v2.permute(0, 2, 1)) loss_sim = torch.sum(sim) loss_sim.backward() 其中A和B是具有形状序列长度*序列长度的中间张量 我的代码遇到错误: 文件“/usr/local/Anaconda3/lib/python3.8/site packages/torch/tensor.py”,第18

我的损失似乎是

e1, v1 = torch.eig(A)
e2, v2 = torch.eig(B)
sim = torch.matmul(v1, v2.permute(0, 2, 1))
loss_sim = torch.sum(sim)
loss_sim.backward()
其中
A
B
是具有形状
序列长度*序列长度的中间张量

我的代码遇到错误:

文件“/usr/local/Anaconda3/lib/python3.8/site packages/torch/tensor.py”,第185行,在向后torch.autograd.backward(self、gradient、retain\u graph、create\u graph)文件“/usr/local/Anaconda3/lib/python3.8/site packages/torch/autograd/\u init\u\u.py”中,第125行,在向后变量中。\执行\引擎运行\向后(RuntimeError:eig_backward:backward计算目前不支持复数特征值。在/opt/conda/conda bld/pytorch_1595629395347/work/torch/csc/autograd/generated/Functions处从eig_backward引发的异常。cpp:1877(最新调用优先):frame#0:c10::Error::Error(c10::SourceLocation,std::string)+0x4d)(0x7f74932e077d in/usr/local/Anaconda3/lib/python3.8/site packages/torch/lib/libc10.so)frame#1:torch::autograd::generated::EigBackward::apply(std::vector&&)+0xb5d(0x7f74cc4b894d in/usr/local/Anaconda3/lib/python3.8/site packages/torch/lib/libtorch\cpu.so)frame#2:+0x30d1017(0x7F74CB0C017 in/usr/local/Anaconda3/lib/python3.8/site packages/torch/lib/libtorch\u cpu.so)帧#3:torch::autograd::Engine::evaluate_函数(std::shared\u ptr&,torch::autograd::Node*,torch::autograd::InputBuffer&,std::shared\u ptr const&+0x1400(0x7F74CB07860 in/usr/local/Anaconda3/lib/python3.8/site packages/torch\libtorch\cpu.so)帧#4:torch::autograd::Engine::thread#main(std::sharedŠptr const&)+0x451(0x7f74ccb08401in/usr/local/Anaconda3/lib/python3.8/site packages/torch/lib/libtorchŠcpu.so)帧#5:torch::autograd::Engine::threadŠinit(int,std::sharedŠŠŠŠŠŠ(0x7F74CB00579 in/usr/local/Anaconda3/lib/python3.8/site packages/torch/lib/libtorch_cpu.so)帧#6:torch::autograd::PythonEngine::thread_init(int,std::shared_ptr const&,bool)+0x4a(0x7f74d0e2a1ba in/usr/local/Anaconda3/lib/python3.8/site packages/torch/lib/libtorch_python.so)帧#7:+0xc819d(0x7f74d393719d in/usr/local/Anaconda3/lib/python3.8/site packages/torch/lib/../../../../..//libstdc++.so.6)frame#8:+0x76ba(0x7f74ed28c6ba in/lib/x86-linux-gnu/libpthread.so.0)frame#9:clone+0x6d(0x7f74ecfc241d in/lib/x86-linux-gnu/libc.so.6)

如何使用torch.eig()完成backword