基本实现:
1) NestedTensorImpl基本实现
1.1) NestedTensor只是dispatchkeyset中包含 NestedTensor的Tensor;
1.2) 連續性上只支持正向连续;
1.3) 通过创建一块连续的大buffer,将各个Tensor内存拷贝到buffer tensor, 通过nested_sizes_, nested_strides_, nested_offsets_进行信息记录,也是根据这几个信息,判断各个Tensor和buffer的连续性;
1.4) opt_sizes_維度0的數據是可靠的,其他維度數據僅當各個Tensor的對應dim size一致才有效,反之爲-1.
2) python端到c++端基本实现:
torch/nested/__init__.py
2.1) torch.nested.as_nested_tensor: Constructs a nested tensor preserving autograd history from :attr:`tensor_list` a list of tensors. a list of tensors with the same ndim