pytorch 配置了GPU 但实际只使用了CPU来计算模型

pytorch 配置了GPU 但实际只使用了CPU来计算模型

情况:相同的的模型在其他数据已经跑过了,可以使用GPU, 所以不是模型的问题。

我只改变了输入的数据,所以怀疑是数据的问题

于是我打印了一个样本数据的嵌入输入,发现了样本的嵌入数据是带了梯度的。具体如下

tensor([ 1.1833,  1.9551,  0.9297, -1.0467, -0.4273,  2.0646,  0.8933, -0.0376,
       ......
       ......
        -0.3290, -1.0271,  0.9247,  0.4438,  0.5575,  1.2078, -0.2939,  1.2771,
         1.2643, -0.3314, -0.7726, -0.4822,  2.3198,  0.1741, -0.7348,  0.4168],
       grad_fn=<SelectBackward0>)
# 有grad_fn=<SelectBackward0> 说明有梯度

说一下我样本嵌入数据的来源:我样本的嵌入是通过预训练得到的,因为在预训练模型中,样本的嵌入是可训练的,也即可以求梯度。

我在提取样本的嵌入的时候,所用的模型并没有对提取嵌入向量的接口进行处理一下。所以导致我获取到的嵌入是带梯度的。

解决方法:去除输入的梯度即可

# 方式1
X.detach()
# 方式2
torch.tensor(X)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值