at::Tensor
:shared ptr 指向 TensorImpl
TensorImpl
:对 at::Tensor
的实现
AutogradMetaInterface
的autograd_meta_,在tensor是需要求导的variable时,会被实例化为 AutogradMeta
,里面包含了autograd需要的信息Variable
: 就是Tensor,为了向前兼容保留的
Variable
是需要计算gradient的, Tensor
是不需要计算gradient的Variable
的 AutogradMeta
是对 AutogradMetaInterface
的实现,里面包含了一个 Variable
,就是该variable的gradientAutogradMeta
, autograd需要的关键信息都在这里AutoGradMeta
: 记录 Variable
的autograd历史信息
Variable
, 即 AutoGradMeta
对应的var的梯度tensorNode
指针的 grad_fn
(var在graph内部时)和 grad_accumulator
(var时叶子时), 记录生成grad_的方法output_nr
,标识var对应 grad_fn
的输入编号Edge
的gradient_edge, gradient_edge.function
就是 grad_fn
, 另外 gradient_edge.input_nr
记录着对应 grad_fn
的输入编号,会赋值给 AutoGradMeta
的 output_nr
autograd::Edge
: 指向autograd::Node
的一个输入
Node
指针,表示edge指向的Nodeinput_nr
, 表示edge指向的Node的输入编号autograd::Node
: 对应AutoGrad Graph中的Op
next_edges_
记录出边input_metadata_
记录输入的tensor的metadata