1. 一般报这个错,是因为使用gpu,但是数据类型为转换,使用data.to(device)即可,
device是device = torch.device("cuda:0" if cuda_used==1 and torch.cuda.is_available() else 'cpu')
2. 我这里是因为定义模型的时候,有部分模型定义在 def __init__(self)的外部,虽然使用了model.to(device),但是这部分定义在外面的模型的类型仍然是cpu加载,所以在cpu下训练没有报错,gpu会报错,对所有的模型都定义在class下,或者使用model.to(device)
报错问题:
Expected object of type torch.FloatTensor but found type torch.cuda.FloatTensor for argument