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_nrautograd::Edge: 指向autograd::Node的一个输入
Node 指针,表示edge指向的Nodeinput_nr, 表示edge指向的Node的输入编号autograd::Node: 对应AutoGrad Graph中的Op
next_edges_记录出边input_metadata_记录输入的tensor的metadata