NEML2 2.0.0
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
UserTensor Class Reference

Create raw Tensor from the input file. More...

Detailed Description

Create raw Tensor from the input file.

#include <UserTensor.h>

Inheritance diagram for UserTensor:

Public Member Functions

 UserTensor (const OptionSet &options)
 Construct a new UserTensor object.
 
- Public Member Functions inherited from Tensor
 Tensor ()=default
 Special member functions.
 
 Tensor (const ATensor &tensor, Size batch_dim)
 Construct from another ATensor.
 
 Tensor (const ATensor &tensor, const TraceableTensorShape &batch_shape)
 Construct from another ATensor with given batch shape.
 
template<class Derived>
 Tensor (const TensorBase< Derived > &tensor)
 Copy from TensorBase.
 
- Public Member Functions inherited from TensorBase< Tensor >
 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 (Real)=delete
 
Tensor variable_data () const
 
Tensor clone () const
 
Tensor detach () const
 Discard function graph.
 
Tensor to (const TensorOptions &options) const
 Change tensor options.
 
Tensor 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 TraceableTensorShapebatch_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.
 
Tensor 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.
 
Tensor 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, Real v)
 
void base_index_put_ (indexing::TensorIndicesRef indices, const ATensor &other)
 
void base_index_put_ (indexing::TensorIndicesRef indices, Real v)
 
Tensor batch_expand (const TraceableTensorShape &batch_shape) const
 
Tensor 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.
 
Tensor 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.
 
Tensor 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.
 
Tensor batch_reshape (const TraceableTensorShape &batch_shape) const
 Reshape batch dimensions.
 
neml2::Tensor base_reshape (TensorShapeRef base_shape) const
 Reshape base dimensions.
 
Tensor batch_unsqueeze (Size d) const
 Unsqueeze a batch dimension.
 
neml2::Tensor base_unsqueeze (Size d) const
 Unsqueeze a base dimension.
 
Tensor 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.
 
- Public Member Functions inherited from UserTensorBase
 UserTensorBase (const OptionSet &options)
 
- Public Member Functions inherited from NEML2Object
 NEML2Object ()=delete
 
 NEML2Object (NEML2Object &&)=delete
 
 NEML2Object (const NEML2Object &)=delete
 
NEML2Objectoperator= (NEML2Object &&)=delete
 
NEML2Objectoperator= (const NEML2Object &)=delete
 
virtual ~NEML2Object ()=default
 
 NEML2Object (const OptionSet &options)
 Construct a new NEML2Object object.
 
const OptionSetinput_options () const
 
virtual void setup ()
 Setup this object.
 
const std::string & name () const
 A readonly reference to the object's name.
 
const std::string & type () const
 A readonly reference to the object's type.
 
const std::string & path () const
 A readonly reference to the object's path.
 
const std::string & doc () const
 A readonly reference to the object's docstring.
 
template<typename T = NEML2Object>
const T * host () const
 Get a readonly pointer to the host.
 
template<typename T = NEML2Object>
T * host ()
 Get a writable pointer to the host.
 

Static Public Member Functions

static OptionSet expected_options ()
 
- Static Public Member Functions inherited from Tensor
static Tensor create (const TensorDataContainer &data, const TensorOptions &options=default_tensor_options())
 Arbitrary (unbatched) tensor from a nested container.
 
static Tensor create (const TensorDataContainer &data, Size batch_dim, const TensorOptions &options=default_tensor_options())
 Arbitrary tensor from a nested container.
 
static Tensor empty (TensorShapeRef base_shape, const TensorOptions &options=default_tensor_options())
 Unbatched empty tensor given base shape.
 
static Tensor empty (const TraceableTensorShape &batch_shape, TensorShapeRef base_shape, const TensorOptions &options=default_tensor_options())
 Empty tensor given batch and base shapes.
 
static Tensor zeros (TensorShapeRef base_shape, const TensorOptions &options=default_tensor_options())
 Unbatched tensor filled with zeros given base shape.
 
static Tensor zeros (const TraceableTensorShape &batch_shape, TensorShapeRef base_shape, const TensorOptions &options=default_tensor_options())
 Zero tensor given batch and base shapes.
 
static Tensor ones (TensorShapeRef base_shape, const TensorOptions &options=default_tensor_options())
 Unbatched tensor filled with ones given base shape.
 
static Tensor ones (const TraceableTensorShape &batch_shape, TensorShapeRef base_shape, const TensorOptions &options=default_tensor_options())
 Unit tensor given batch and base shapes.
 
static Tensor full (TensorShapeRef base_shape, Real init, const TensorOptions &options=default_tensor_options())
 Unbatched tensor filled with a given value given base shape.
 
static Tensor full (const TraceableTensorShape &batch_shape, TensorShapeRef base_shape, Real init, const TensorOptions &options=default_tensor_options())
 Full tensor given batch and base shapes.
 
static Tensor identity (Size n, const TensorOptions &options=default_tensor_options())
 Unbatched identity tensor.
 
static Tensor identity (const TraceableTensorShape &batch_shape, Size n, const TensorOptions &options=default_tensor_options())
 Identity tensor given batch shape and base length.
 
- Static Public Member Functions inherited from TensorBase< Tensor >
static Tensor empty_like (const Tensor &other)
 
static Tensor zeros_like (const Tensor &other)
 Zero tensor like another, i.e. same batch and base shapes, same tensor options, etc.
 
static Tensor ones_like (const Tensor &other)
 Unit tensor like another, i.e. same batch and base shapes, same tensor options, etc.
 
static Tensor full_like (const Tensor &other, Real init)
 
static Tensor linspace (const Tensor &start, const Tensor &end, Size nstep, Size dim=0)
 Create a new tensor by adding a new batch dimension with linear spacing between start and end.
 
static Tensor logspace (const Tensor &start, const Tensor &end, Size nstep, Size dim=0, Real base=10)
 log-space equivalent of the linspace named constructor
 
- Static Public Member Functions inherited from UserTensorBase
static OptionSet expected_options ()
 
- Static Public Member Functions inherited from NEML2Object
static OptionSet expected_options ()
 

Constructor & Destructor Documentation

◆ UserTensor()

UserTensor ( const OptionSet & options)

Construct a new UserTensor object.

Parameters
optionsThe options extracted from the input file.

Member Function Documentation

◆ expected_options()

OptionSet expected_options ( )
static