【神经网络输入参数与网络权重参数数据类型】RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch....

本文讲述了在使用PyTorch进行特征提取时遇到的RuntimeError,原因在于输入数据(GPU类型)和网络权重(CPU类型)不匹配。提供了两种方法,一是将网络权重转换为GPU类型,二是直接在GPU设备上运行网络。

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

场景描述: 

复现程序时想要拿出项目代码中数据处理(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()

即:
 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Top Secret

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值