Tensor class

An N-dimensional tensor backed by a flat Float32List.

Supports common tensor operations needed for neural network inference:

  • Element-wise: add, subtract, multiply, divide
  • Matrix multiplication (2D and batched)
  • Reshape, transpose, permute, squeeze, unsqueeze
  • Reduction: sum, mean, max, softmax
  • Slicing and indexing

Constructors

Tensor(Float32List data, List<int> shape)
Creates a tensor from existing data and shape.
Tensor.arange(int start, int end)
Creates a 1D tensor with values from start to end (exclusive).
factory
Tensor.fromList(List list)
Creates a tensor from a nested list of doubles.
factory
Tensor.full(List<int> shape, double value)
Creates a tensor filled with a constant value.
factory
Tensor.ones(List<int> shape)
Creates a tensor filled with ones.
factory
Tensor.randn(List<int> shape, {double mean = 0.0, double std = 1.0, int? seed})
Creates a tensor with random values from a normal distribution.
factory
Tensor.scalar(double value)
Creates a scalar tensor (shape = 1).
factory
Tensor.zeros(List<int> shape)
Creates a tensor filled with zeros.
factory

Properties

data → Float32List
The underlying flat data storage.
final
hashCode → int
The hash code for this object.
no setterinherited
ndim → int
Number of dimensions.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
shape → List<int>
The shape of the tensor (list of dimension sizes).
final
size → int
Total number of elements.
no setter
strides ↔ List<int>
The strides for each dimension (number of elements to skip).
latefinal

Methods

abs() → Tensor
Element-wise absolute value.
addScalar(double s) → Tensor
Add a scalar to all elements.
argmax() → int
Argmax over all elements.
at(List<int> indices) → double
Get a single element by multi-dimensional index.
clamp(double minVal, double maxVal) → Tensor
Clamp values to minVal, maxVal.
clone() → Tensor
Create a deep copy.
divScalar(double s) → Tensor
Divide all elements by a scalar.
expand(List<int> newShape) → Tensor
Expand a size-1 dimension to the given size (broadcast).
flatten() → Tensor
Flatten to a 1D tensor.
gelu() → Tensor
Element-wise GELU activation.
logSoftmax(int dim) → Tensor
Log-softmax over a given dimension.
map(double fn(double)) → Tensor
Apply a function to each element.
matmul(Tensor other) → Tensor
Matrix multiplication for 2D tensors.
maxAll() → double
Max of all elements.
maxDim(int dim, {bool keepDim = false}) → Tensor
Max over a given dimension.
mean(int dim, {bool keepDim = false}) → Tensor
Mean over a given dimension.
meanAll() → double
Mean of all elements.
mulScalar(double s) → Tensor
Multiply all elements by a scalar.
neg() → Tensor
Element-wise negation.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
permute(List<int> order) → Tensor
Permute dimensions. E.g., (0, 2, 1) transposes last two dims.
pow(double exponent) → Tensor
Element-wise power.
relu() → Tensor
Element-wise ReLU activation.
repeat(List<int> times) → Tensor
Repeat along each dimension.
reshape(List<int> newShape) → Tensor
Reshape the tensor to a new shape. -1 infers that dimension.
setAt(List<int> indices, double value) → void
Set a single element by multi-dimensional index.
sigmoid() → Tensor
Element-wise sigmoid.
slice(int start, int end, [int dim = 0]) → Tensor
Slice: returns a sub-tensor from start to end along dimension 0.
softmax(int dim) → Tensor
Softmax over a given dimension.
sqrt() → Tensor
Element-wise square root.
squeeze([int? dim]) → Tensor
Remove a dimension of size 1 at the given position.
sum(int dim, {bool keepDim = false}) → Tensor
Sum over a given dimension, keeping the dimension (size 1).
sumAll() → double
Sum all elements.
tanh() → Tensor
Element-wise tanh.
toList() → dynamic
Convert to a nested Dart list.
toString() → String
A string representation of this object.
override
transpose(int dim0, int dim1) → Tensor
Transpose: swap two dimensions.
unsqueeze(int dim) → Tensor
Add a dimension of size 1 at the given position.

Operators

operator *(Tensor other) → Tensor
operator +(Tensor other) → Tensor
operator -(Tensor other) → Tensor
operator /(Tensor other) → Tensor
operator ==(Object other) → bool
The equality operator.
inherited
operator [](int index) → Tensor
Get a sub-tensor along the first dimension.

Static Methods

cat(List<Tensor> tensors, [int dim = 0]) → Tensor
Concatenate a list of tensors along a given dimension.
causalMask(int size) → Tensor
Create a causal (lower triangular) attention mask.
paddingMask(List<int> lengths, int maxLen) → Tensor
Create a padding mask (1 for valid, 0 for padding).