【问题标题】:What is volatile variable in PytorchPytorch 中的 volatile 变量是什么
【发布时间】:2018-09-25 00:46:02
【问题描述】:

什么是 Pytorch 中变量的 volatile 属性?这是在 PyTorch 中定义变量的示例代码。

datatensor = Variable(data, volatile=True)

【问题讨论】:

    标签: pytorch


    【解决方案1】:

    基本上,如果您只进行推理并且不会运行反向传播以节省内存,请将网络的输入设置为 volatile。

    来自docs

    当您确定时,建议将 Volatile 用于纯推理模式 你甚至不会调用 .backward()。它比任何东西都更有效 其他 autograd 设置 - 它将使用绝对最小量 内存来评估模型。 volatile 也决定了 requires_grad 为 False。

    编辑:从 pytorch 0.4.0 版开始,volatile 关键字为 deprecated

    【讨论】:

      【解决方案2】:

      对于 0.4.0 之前的 Pytorch 版本,VariableTensor 是两个不同的实体。对于变量,您可以指定两个标志:volatilerequire_grad。它们都用于从梯度计算中细粒度地排除子图。

      volatilerequires_grad 之间的区别在于标志如何应用于操作的输出。如果甚至有一个volatile = True 变量作为操作的输入,它的输出也将被标记为volatile。对于requires_grad,您需要将该操作的所有输入标记为requires_grad = False,以便输出也以相同的方式标记。

      Pytorch 0.4.0,TensorsVariables 已合并,volatile 标志已弃用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-19
        • 1970-01-01
        • 2012-01-04
        • 1970-01-01
        • 2012-03-07
        • 2015-08-06
        相关资源
        最近更新 更多