pytorch如何从张量中删除cuda()

Aer*_*rin 7 python type-conversion pytorch tensor

我有TypeError: expected torch.LongTensor (got torch.cuda.FloatTensor).

我如何转换torch.cuda.FloatTensortorch.LongTensor

  Traceback (most recent call last):
  File "train_v2.py", line 110, in <module>
    main()
  File "train_v2.py", line 81, in main
    model.update(batch)
  File "/home/Desktop/squad_vteam/src/model.py", line 131, in update
    loss_adv = self.adversarial_loss(batch, loss, self.network.lexicon_encoder.embedding.weight, y)
  File "/home/Desktop/squad_vteam/src/model.py", line 94, in adversarial_loss
    adv_embedding = torch.LongTensor(adv_embedding)
TypeError: expected torch.LongTensor (got torch.cuda.FloatTensor)
Run Code Online (Sandbox Code Playgroud)

Uma*_*pta 6

你有一个浮动张量,f并希望将它转换为long,你可以long_tensor = f.long()

你有cuda张量,即数据在gpu上,并希望将它移动到cpu,你可以做cuda_tensor.cpu().

所以要转换torch.cuda.Float张A到torch.long做A.long().cpu()