Pytorch RuntimeError:应为后端CUDA的对象,但参数为#3';指数';

Pytorch RuntimeError:应为后端CUDA的对象,但参数为#3';指数';,pytorch,word-embedding,Pytorch,Word Embedding,我在谷歌CoLab上与“lda2vec pytorch”项目合作, runnin pytorch 1.1.0 我在正向方法中遇到了一个异常,在我的 类负采样损耗(nn.模块): 以下是堆栈跟踪: Traceback (most recent call last): File "train.py", line 36, in <module> main() File "train.py", line 32, in main save_every=20, grad

我在谷歌CoLab上与“lda2vec pytorch”项目合作, runnin pytorch 1.1.0

我在正向方法中遇到了一个异常,在我的 类负采样损耗(nn.模块):

以下是堆栈跟踪:

Traceback (most recent call last):
  File "train.py", line 36, in <module>
    main()
  File "train.py", line 32, in main
    save_every=20, grad_clip=5.0
  File "../utils/training.py", line 138, in train
    neg_loss, dirichlet_loss = model(doc_indices, pivot_words, target_words)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 493, in __call__
    result = self.forward(*input, **kwargs)
  File "../utils/lda2vec_loss.py", line 82, in forward
    neg_loss = self.neg(pivot_words, target_words, doc_vectors, w)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 493, in __call__
    result = self.forward(*input, **kwargs)
  File "../utils/lda2vec_loss.py", line 167, in forward
    noise = self.embedding(noise)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 493, in __call__
    result = self.forward(*input, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/sparse.py", line 117, in forward
    self.norm_type, self.scale_grad_by_freq, self.sparse)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/functional.py", line 1506, in embedding
    return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)
RuntimeError: Expected object of backend CUDA but got backend CPU for argument #3 'index'
回溯(最近一次呼叫最后一次):
文件“train.py”,第36行,在
main()
文件“train.py”,第32行,在main中
每保存一次=20,渐变剪辑=5.0
文件“./utils/training.py”,第138行,列车中
负损失,dirichlet损失=模型(文档索引、轴心词、目标词)
文件“/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py”,第493行,在调用中__
结果=自我转发(*输入,**kwargs)
文件“./utils/lda2vec_loss.py”,第82行,前进
neg\u loss=self.neg(枢轴词、目标词、文档向量、w)
文件“/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py”,第493行,在调用中__
结果=自我转发(*输入,**kwargs)
文件“./utils/lda2vec_loss.py”,第167行,前进
噪声=自嵌入(噪声)
文件“/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py”,第493行,在调用中__
结果=自我转发(*输入,**kwargs)
文件“/usr/local/lib/python3.6/dist packages/torch/nn/modules/sparse.py”,第117行,向前
self.norm\u type、self.scale\u grad\u by\u freq、self.sparse)
文件“/usr/local/lib/python3.6/dist packages/torch/nn/functional.py”,第1506行,嵌入
返回火炬。嵌入(重量、输入、填充、比例、梯度、稀疏)
RuntimeError:应为后端CUDA的对象,但为参数#3“index”获取了后端CPU

有什么想法吗?

变量<代码>噪声在CPU上可用,而
自身。嵌入
在GPU上。我们还可以向GPU发送
噪音

noise = noise.to(device)

变量
noise
在CPU上可用,而
self.embedding
在GPU上可用。我们还可以向GPU发送
噪音

noise = noise.to(device)
noise = noise.to(device)