boundlab.expr.Stack#
- class boundlab.expr.Stack[source]#
Bases:
ExprExpression for stacking child expressions along a new dimension.
All children must have identical shapes. The backward pass produces an embed LinearOp per child that places the child at its index along the stacking dimension, with zeros elsewhere.
Methods
Propagate weights to each child via unsqueeze+cat embed ops.
Compute the width of the bounds for this expression.
Compute the center of the bounds for this expression.
Return the concrete tensor if self is a pure constant expression, else None.
Recursively compute Jacobian ops for affine expressions.
Compute a lower bound for this expression.
Return string representation with child strings substituted.
Compute an upper bound for this expression.
Compute both an upper bound and a lower bound for this expression.
Return a new expression with the same type and flags but new children.
- property shape: torch.Size#
The shape of the output(s) produced by this expression.
- with_children(*new_children)[source]#
Return a new expression with the same type and flags but new children.
- backward(weights, direction='==')[source]#
Propagate weights to each child via unsqueeze+cat embed ops.
- __add__(other)#
- __mul__(other)#
Element-wise multiplication (no broadcast).
- bound_width()#
Compute the width of the bounds for this expression.
- center()#
Compute the center of the bounds for this expression.
- diag(diagonal=0)#
- expand(*sizes)#
- flatten(start_dim=0, end_dim=-1)#
- flip(dims)#
- gather(indices)#
- get_const()#
Return the concrete tensor if self is a pure constant expression, else None.
Works for
ConstValand anyAffineSumthat has no symbolic children.
- jacobian_ops_()#
Recursively compute Jacobian ops for affine expressions.
- lb()#
Compute a lower bound for this expression.
- narrow(dim, start, length)#
- permute(*dims)#
- repeat(*sizes)#
- reshape(*shape)#
- roll(shifts, dims)#
- scatter(indices, output_shape)#
- squeeze(dim=None)#
- tile(*sizes)#
- transpose(dim0, dim1)#
- ub()#
Compute an upper bound for this expression.
- ublb()#
Compute both an upper bound and a lower bound for this expression.
- unflatten(dim, sizes)#
- unsqueeze(dim)#
- zeros_set(output_shape)#