template<class Derived>
class neml2::TensorBase< Derived >
NEML2's enhanced tensor type.
neml2::TensorBase derives from ATensor and clearly distinguishes between "batched" dimensions from other dimensions. The shape of the "batched" dimensions is called the batch size, and the shape of the rest dimensions is called the base size.
|
| | TensorBase ()=default |
| | Special member functions.
|
| |
| | TensorBase (const ATensor &tensor, Size batch_dim) |
| | Construct from another ATensor with given batch dimension.
|
| |
| | TensorBase (const ATensor &tensor, const TraceableTensorShape &batch_shape) |
| | Construct from another ATensor with given batch shape.
|
| |
| | TensorBase (const neml2::Tensor &tensor) |
| | Copy constructor.
|
| |
| | TensorBase (double)=delete |
| |
| | TensorBase (float)=delete |
| |
| | TensorBase (int)=delete |
| |
| Derived | variable_data () const |
| |
|
| Derived | clone () const |
| |
| Derived | detach () const |
| | Discard function graph.
|
| |
| Derived | to (const TensorOptions &options) const |
| | Change tensor options.
|
| |
| Derived | operator- () const |
| | Negation.
|
| |
|
| bool | batched () const |
| | Whether the tensor is batched.
|
| |
| Size | batch_dim () const |
| | Return the number of batch dimensions.
|
| |
| Size | base_dim () const |
| | Return the number of base dimensions.
|
| |
| const TraceableTensorShape & | batch_sizes () const |
| | Return the batch size.
|
| |
| TraceableSize | batch_size (Size index) const |
| | Return the size of a batch axis.
|
| |
| TensorShapeRef | base_sizes () const |
| | Return the base size.
|
| |
| Size | base_size (Size index) const |
| | Return the size of a base axis.
|
| |
| Size | base_storage () const |
| | Return the flattened storage needed just for the base indices.
|
| |
|
| Derived | batch_index (indexing::TensorIndicesRef indices) const |
| | Get a tensor by slicing on the batch dimensions.
|
| |
| neml2::Tensor | base_index (indexing::TensorIndicesRef indices) const |
| | Get a tensor by slicing on the base dimensions.
|
| |
| Derived | batch_slice (Size dim, const indexing::Slice &index) const |
| | Get a tensor by slicing along a batch dimension.
|
| |
| neml2::Tensor | base_slice (Size dim, const indexing::Slice &index) const |
| | Get a tensor by slicing along a base dimension.
|
| |
| void | batch_index_put_ (indexing::TensorIndicesRef indices, const ATensor &other) |
| |
| void | batch_index_put_ (indexing::TensorIndicesRef indices, const CScalar &v) |
| |
|
| void | base_index_put_ (indexing::TensorIndicesRef indices, const ATensor &other) |
| |
| void | base_index_put_ (indexing::TensorIndicesRef indices, const CScalar &v) |
| |
|
| Derived | batch_expand (const TraceableTensorShape &batch_shape) const |
| |
| Derived | batch_expand (const TraceableSize &batch_size, Size dim) const |
| | Return a new view of the tensor with values broadcast along a given batch dimension.
|
| |
| neml2::Tensor | base_expand (TensorShapeRef base_shape) const |
| | Return a new view of the tensor with values broadcast along the base dimensions.
|
| |
| neml2::Tensor | base_expand (Size base_size, Size dim) const |
| | Return a new view of the tensor with values broadcast along a given base dimension.
|
| |
| Derived | batch_expand_as (const neml2::Tensor &other) const |
| | Expand the batch to have the same shape as another tensor.
|
| |
| neml2::Tensor | base_expand_as (const neml2::Tensor &other) const |
| | Expand the base to have the same shape as another tensor.
|
| |
| Derived | batch_expand_copy (const TraceableTensorShape &batch_shape) const |
| | Return a new tensor with values broadcast along the batch dimensions.
|
| |
| neml2::Tensor | base_expand_copy (TensorShapeRef base_shape) const |
| | Return a new tensor with values broadcast along the base dimensions.
|
| |
| Derived | batch_reshape (const TraceableTensorShape &batch_shape) const |
| | Reshape batch dimensions.
|
| |
| neml2::Tensor | base_reshape (TensorShapeRef base_shape) const |
| | Reshape base dimensions.
|
| |
| Derived | batch_unsqueeze (Size d) const |
| | Unsqueeze a batch dimension.
|
| |
| neml2::Tensor | base_unsqueeze (Size d) const |
| | Unsqueeze a base dimension.
|
| |
| Derived | batch_transpose (Size d1, Size d2) const |
| | Transpose two batch dimensions.
|
| |
| neml2::Tensor | base_transpose (Size d1, Size d2) const |
| | Transpose two base dimensions.
|
| |
| neml2::Tensor | base_flatten () const |
| | Flatten base dimensions.
|
| |
|
| static Derived | empty_like (const Derived &other) |
| |
| static Derived | zeros_like (const Derived &other) |
| | Zero tensor like another, i.e. same batch and base shapes, same tensor options, etc.
|
| |
| static Derived | ones_like (const Derived &other) |
| | Unit tensor like another, i.e. same batch and base shapes, same tensor options, etc.
|
| |
| static Derived | full_like (const Derived &other, const CScalar &init) |
| |
| static Derived | linspace (const Derived &start, const Derived &end, Size nstep, Size dim=0) |
| | Create a new tensor by adding a new batch dimension with linear spacing between start and end.
|
| |
| static Derived | logspace (const Derived &start, const Derived &end, Size nstep, Size dim=0, const CScalar &base=10) |
| | log-space equivalent of the linspace named constructor
|
| |