栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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=)
# 有grad_fn= 说明有梯度

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

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

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

# 方式1
X.detach()
# 方式2
torch.tensor(X)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/875416.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号