【发布时间】:2018-09-25 00:46:02
【问题描述】:
什么是 Pytorch 中变量的 volatile 属性?这是在 PyTorch 中定义变量的示例代码。
datatensor = Variable(data, volatile=True)
【问题讨论】:
标签: pytorch
什么是 Pytorch 中变量的 volatile 属性?这是在 PyTorch 中定义变量的示例代码。
datatensor = Variable(data, volatile=True)
【问题讨论】:
标签: pytorch
基本上,如果您只进行推理并且不会运行反向传播以节省内存,请将网络的输入设置为 volatile。
来自docs:
当您确定时,建议将 Volatile 用于纯推理模式 你甚至不会调用 .backward()。它比任何东西都更有效 其他 autograd 设置 - 它将使用绝对最小量 内存来评估模型。 volatile 也决定了 requires_grad 为 False。
编辑:从 pytorch 0.4.0 版开始,volatile 关键字为 deprecated
【讨论】:
对于 0.4.0 之前的 Pytorch 版本,Variable 和 Tensor 是两个不同的实体。对于变量,您可以指定两个标志:volatile 和 require_grad。它们都用于从梯度计算中细粒度地排除子图。
volatile 和requires_grad 之间的区别在于标志如何应用于操作的输出。如果甚至有一个volatile = True 变量作为操作的输入,它的输出也将被标记为volatile。对于requires_grad,您需要将该操作的所有输入标记为requires_grad = False,以便输出也以相同的方式标记。
从Pytorch 0.4.0,Tensors 和Variables 已合并,volatile 标志已弃用。
【讨论】: