pytorch 学习笔记(二十二):关于 inplace operation

原文发表在 知乎上 在这里就做一下同步吧。
(本文章适用于 pytorch0.4.0 版本, 既然 Variable 和 Tensor merge 到一块了, 那就叫 Tensor吧)

在编写 pytorch 代码的时候, 如果模型很复杂, 代码写的很随意, 那么很有可能就会碰到由 inplace operation 导致的问题. 所以本文将对 pytorch 的 inplace operation 做一个简单的总结.

在 pytorch 中, 有两种情况不能使用 inplace operation:

  • 对于 requires_grad=True 的 叶子张量(leaf tensor) 不能使用 inplace operation
  • 对于在 求梯度阶段需要用到的张量 不能使用 inplace operation

下面将通过代码来说明以上两种情况:

第一种情况: requires_grad=True 的 leaf tensor

import torch

w = torch.FloatTensor(10) # w 是个 leaf tensor
w.

你可能感兴趣的:(pytorch,pytorch学习笔记)