方法参考文章:【PyTorch】常见错误: RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor)_input type (torch.cuda.floattensor) and weight typ-CSDN博客 

场景描述: 

复现程序时想要拿出项目代码中数据处理(dataloader)得到的数据,然后在jupyter notebook上将该数据应用于特征提取网络。主要结构如下所示:
(1)拿到处理好的数据:
 

(2)定义特征提取网络: 

(3) 实例化特性提取网络以应用,但报错:

报错如下: 

RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

报错分析:

       错误内容就在类型不匹配,根据报错内容可以看出Input type为torch.cuda.FloatTensor(GPU数据类型),而weight type(即网络权重参数这些)为torch.FloatTensor(CPU数据类型)。

解决方法:

        统一输入数据与网络权重参数的数据类型: 

       既然输入数据是GPU类型,那解决方法就是将网络权重参数类型转变为GPU类型。

方法1:

device = torch.device('cuda:0')
G_shared= G_shared.to(device) # 将网络权重改为torch.cuda.FloatTensor(GPU数据类型)

 

 方法2:

G_shared = G_shared.cuda()

即:
 

 

 

 

 

 

 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐