首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何保持毕业生,也改变设备类型的电筒?

我如何保持毕业生,也改变设备类型的电筒?
EN

Stack Overflow用户
提问于 2020-08-30 22:09:50
回答 1查看 154关注 0票数 1

当我将输入变量从CPU改为cuda时,它失去了所有的梯度,也失去了它的is_leaf状态。我怎么才能避开这一切?我想要保持渐变,并将其更改为另一个设备。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-31 18:08:10

叶张量是将其requires_grad属性设置为True的张量。当你对张量做任何不恰当的操作时,由此产生的张量不再是叶张量。这包括使用.to(device).cuda().cpu()在不同设备上创建张量副本。设置现有张量的requires_grad属性的推荐方法是使用就地Tensor.requires_grad_方法。如果希望GPU上的张量成为叶节点,则需要在requires_grad 复制到所需设备后设置

例如

代码语言:javascript
复制
input = input.to('cuda')
input.requires_grad_(True)   # need to set requires_grad after copying to GPU

或者更简洁一点

代码语言:javascript
复制
input = input.to('cuda').requires_grad_(True)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63662624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档