【神经网络输入参数与网络权重参数数据类型】RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch....
错误内容就在类型不匹配,根据报错内容可以看出Input type为torch.cuda.FloatTensor(GPU数据类型),而weight type(即网络权重参数这些)为。复现程序时想要拿出项目代码中数据处理(dataloader)得到的数据,然后在jupyter notebook上将该数据应用于特征提取网络。既然输入数据是GPU类型,那解决方法就是将网络权重参数类型转变为GPU类型。.F
·
场景描述:
复现程序时想要拿出项目代码中数据处理(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()
即:
更多推荐
所有评论(0)