我正在尝试使用FloydHub的GPU运行this代码。 当我在 train_model 文件夹下运行 train.py 脚本时,出现了RuntimeError。
这是完整的追溯:
回溯(最近通话最近):
中的文件“ ./train_model/train.py”,第79行 答案=型号(批次)
在调用
中的文件“ /usr/local/lib/python3.6/site-packages/torch/nn/modules/module.py”,第477行 结果= self.forward(* input,** kwargs)
向前复制文件“ /floyd/home/train_model/model.py”,第29行
vecs = self.embed(batch.text)
在调用
中的文件“ /usr/local/lib/python3.6/site-packages/torch/nn/modules/module.py”,第477行 结果= self.forward(* input,** kwargs)
文件“ /usr/local/lib/python3.6/site-packages/torch/nn/modules/sparse.py”,第110行,正向
self.norm_type,self.scale_grad_by_freq,self.sparse)
嵌入中的文件“ /usr/local/lib/python3.6/site-packages/torch/nn/functional.py”,行1110
返回torch.embedding(重量,输入,padding_idx,scale_grad_by_freq,稀疏)
RuntimeError:类型为torch.cuda.LongTensor的预期对象,但为参数#3'index'找到了torch.LongTensor类型。
我了解部分代码正在使用GPU,而其他部分则不是但不知道如何识别这些代码并使所有代码在GPU上运行。
请帮助!
答案 0 :(得分:0)
调用正向函数时出现错误。如错误所言,转发函数“类型为torch.cuda.LongTensor的预期对象”的我认为您的输入batch
仍在CPU中,需要传输到cuda设备。
我认为您已经知道该怎么做,但如果不知道,请阅读https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#training-on-gpu。
希望有帮助,如果您需要更多帮助,请告诉我。 :)