boundlab.expr.ConstVal#
- class boundlab.expr.ConstVal[source]#
Bases:
AffineSumExpression representing a constant tensor value.
Implemented as an AffineSum with no children and only a constant term. When used as a child of another AffineSum, the constant is automatically absorbed via eager contraction.
Methods
Construct an AffineSum.
Propagate weights backward: each child gets weights ∘ op_i.
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 AffineSum with the same ops but new children.
- __init__(value=None, name=None, *_pairs, const=None)[source]#
Construct an AffineSum.
- Parameters:
*pairs – Sequence of
(op, child)pairs whereopis aEinsumOpandchildis anExprortorch.Tensor.
- get_const()[source]#
Return the concrete tensor if self is a pure constant expression, else None.
Works for
ConstValand anyAffineSumthat has no symbolic children.
- static __new__(cls, *pairs, const=None, **_kw)#
- backward(weights, direction)#
Propagate weights backward: each child gets weights ∘ op_i.
- 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)#
- 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)#
- property shape: torch.Size#
The shape of the output(s) produced by this expression.
- 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)#
- with_children(*new_children)#
Return a new AffineSum with the same ops but new children.
- zeros_set(output_shape)#