5.4. TensorLike

class TensorLike

The base class for Constant , Var , Param and Expr .

Properties

T

Transpose of the tensor.

index

Index of this tensor. It is -1 until tensor is added to model.

ndim

The number of dimensions for this tensor.

shape

The shape of this tensor.

type

The type for this tensor.

Methods

reshape()

Reshape this tensor, number of elements should not be changed between new shape and original shape.

__getitem__()

Get sub-tensor from this tensor.

__le__()

Tensor <= object.

__ge__()

Tensor >= object. Operands may be broadcasted.

__eq__()

Tensor == object. Operands may be broadcasted.

__lshift__()

Constraint: tensor is NSD.

__rlshift__()

Constraint: tensor is PSD.

__rshift__()

Constraint: tensor is PSD.

__rrshift__()

Constraint: tensor is NSD.

__neg__()

Returns -tensor.

__pow__()

Tensor ** object.

__rpow__()

Object ** tensor.

__add__()

Tensor + object. Operands may be broadcasted.

__radd__()

Object + tensor.

__sub__()

Tensor - object.

__rsub__()

Object - tensor.

__mul__()

Tensor * object.

__rmul__()

Object * tensor.

__matmul__()

Tensor @ object.

__rmatmul__()

Object @ tensor.

__truediv__()

Tensor / object.

__rtruediv__()

Object / tensor.

property T: Expr

Transpose of the tensor.

property index: int

Index of this tensor. It is -1 until tensor is added to model.

property ndim: int

The number of dimensions for this tensor.

property shape: Tuple[int]

The shape of this tensor.

property type: int

The type for this tensor.

It is:

  • 2 for sparse constant.

  • 3 for dense constant.

  • 4 for parameter.

  • 5 for variable.

  • and 6, for expression.

reshape(*shape: int)

Reshape this tensor, number of elements should not be changed between new shape and original shape.

param *shape:

Type: int

The dimensions for new shape.

return:

Type: Expr

The reshaped tensor.

__getitem__(slc: slice)

Get sub-tensor from this tensor.

param slc:

Type: slice

The index range for each dimension for sub-tensor.

return:

Type: Expr

The sub-tensor.

__le__(r: TensorLike | ArrayLike)

Tensor <= object.

Operands may be broadcasted.

param r:

Type: Union[TensorLike, ArrayLike]

The right-hand-side for comparison.

return:

Type: Constr

The constraint.

__ge__(r: TensorLike | ArrayLike)

Tensor >= object. Operands may be broadcasted.

param r:

Type: Union[TensorLike, ArrayLike]

The right-hand-side for comparison.

return:

Type: Constr

The constraint.

__eq__(r: TensorLike | ArrayLike)

Tensor == object. Operands may be broadcasted.

param r:

Type: Union[TensorLike, ArrayLike]

The right-hand-side for comparison.

return:

Type: Constr

The constraint.

__lshift__(r: int)

Constraint: tensor is NSD.

param r:

Type: int

Must be zero.

return:

Type: Constr

The NSD constraint.

__rlshift__(l: int)

Constraint: tensor is PSD.

param l:

Type: int

Must be zero.

return:

Type: Constr

The PSD constraint.

__rshift__(r: int)

Constraint: tensor is PSD.

param r:

Type: int

Must be zero.

return:

Type: Constr

The PSD constraint.

__rrshift__(l: int)

Constraint: tensor is NSD.

param l:

Type: int

Must be zero.

return:

Type: Constr

The NSD constraint.

__neg__()

Returns -tensor.

return:

Type: Expr

-tensor.

__pow__(r: TensorLike | ArrayLike)

Tensor ** object.

Operands may be broadcasted.

param r:

Type: Union[TensorLike, ArrayLike]

The right-hand-side object

return:

Type: Expr

The result of exponentiation.

Note

This operation is element-wise exponentiation.

__rpow__(l: TensorLike | ArrayLike)

Object ** tensor.

Operands may be broadcasted.

param l:

Type: Union[TensorLike, ArrayLike]

The left-hand-side object.

return:

Type: Expr

The result of exponentiation.

Note

This operation is element-wise exponentiation.

__add__(r: TensorLike | ArrayLike)

Tensor + object. Operands may be broadcasted.

param r:

Type: Union[TensorLike, ArrayLike]

The right-hand-side object

return:

Type: Expr

The result of add operation.

__radd__(l: TensorLike | ArrayLike)

Object + tensor.

Operands may be broadcasted.

param l:

Type: Union[TensorLike, ArrayLike]

The left-hand-side object.

return:

Type: Expr

The result of add operation.

__sub__(r: TensorLike | ArrayLike)

Tensor - object.

Operands may be broadcasted.

param r:

Type: Union[TensorLike, ArrayLike]

The right-hand-side object

return:

Type: Expr

The result of subtraction.

__rsub__(l: TensorLike | ArrayLike)

Object - tensor.

Operands may be broadcasted.

param l:

Type: Union[TensorLike, ArrayLike]

The left-hand-side object.

return:

Type: Expr

The result of subtraction.

__mul__(r: TensorLike | ArrayLike)

Tensor * object.

Operands may be broadcasted.

param r:

Type: Union[TensorLike, ArrayLike]

The right-hand-side object

return:

Type: Expr

The result of multiplication.

Note

This operation is element-wise multiplication.

__rmul__(l: TensorLike | ArrayLike)

Object * tensor.

Operands may be broadcasted.

param l:

Type: Union[TensorLike, ArrayLike]

The left-hand-side object.

return:

Type: Expr

The result of multiplication.

Note

This operation is element-wise multiplication.

__matmul__(r: TensorLike | ArrayLike)

Tensor @ object.

Operands may be broadcasted.

param r:

Type: Union[TensorLike, ArrayLike]

The right-hand-side object

return:

Type: Expr

The result of multiplication operation.

Note

This operation is matrix multiplication.

__rmatmul__(l: TensorLike | ArrayLike)

Object @ tensor.

Operands may be broadcasted.

param l:

Type: Union[TensorLike, ArrayLike]

The left-hand-side object.

return:

Type: Expr

The result of multiplication.

Note

This operation is matrix multiplication.

__truediv__(r: TensorLike | ArrayLike)

Tensor / object.

Operands may be broadcasted.

param r:

Type: Union[TensorLike, ArrayLike]

The right-hand-side object

return:

Type: Expr

The result of division.

Note

This operation is element-wise division.

__rtruediv__(l: TensorLike | ArrayLike)

Object / tensor.

Operands may be broadcasted.

param l:

Type: Union[TensorLike, ArrayLike]

The left-hand-side object.

return:

Type: Expr

The result of division.

Note

This operation is element-wise division.