boundlab.expr.Cat#
- class boundlab.expr.Cat[source]#
Bases:
ExprExpression for concatenating child expressions along a dimension.
The backward pass produces an embed LinearOp per child that zero-pads the child’s contribution into the full cat output shape. The VJP of F.pad (narrow) is computed automatically.
Methods
Propagate weights to each child via zero-padding 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 zero-padding 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)#