Pytorch
文章平均质量分 57
Yang-Jiaye
这个作者很懒,什么都没留下…
展开
-
pytorch中tensor的cpu和gpu转换
注意tensor的to()和cuda()都不是原位操作,这意味着一定要把返回值赋给原张量。或者X = X.cuda()原创 2023-09-03 10:21:09 · 637 阅读 · 2 评论 -
with torch.no_grad() 和 叶子节点in place操作
例如下面的代码由于y依赖于w求梯度,如果改变了w,那么反向传播求梯度的时候y的梯度是错误的,所以pytorch设置为不能改变。另一种情况是requires_grad为true非叶子节点,在求梯度时需要被用到,也不可以进行in place操作。但这里如果修改的是f也不会报错,只有中间节点不能修改。参考https://zhuanlan.zhihu.com/p/38475183。原创 2023-09-02 11:54:12 · 134 阅读 · 0 评论 -
pytorch中require grad, 叶子节点, grad 与 grad_fn
c有grad但是a没有grad,因为反向传播的时候a没有正向传播函数grad_fn。当然实际没人会这么写代码。可以让非叶子节点保留梯度。原创 2023-09-01 14:48:00 · 133 阅读 · 1 评论