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.
Return a list of all sub-expressions in the DAG rooted at this expression, in topological order.
Propagate weights backward: each child gets weights ∘ op_i.
Compute the width of the bounds for this expression.
Compute the breakdown of the bound width by reason.
Compute the center of the bounds for this expression.
Return the concrete tensor if self is a pure constant expression, else None.
Return True if this expression is symmetric about zero, else False.
Compute a lower bound for this expression.
Compute the maximum width across all output dimensions.
Return a new expression with the same structure but sub-expressions replaced by replace_fn.
Recursively compute simplified ops for affine expressions.
Decompose this AffineSum into a constant part and a zero-constant AffineSum.
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.
Compute the breakdown of the bound width by reason, aggregated to total contributions.
Return a new AffineSum with the same ops but new children.
- __init__(value, 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)#
- all_subnodes()#
Return a list of all sub-expressions in the DAG rooted at this expression, in topological order.
- backward(weights, direction)#
Propagate weights backward: each child gets weights ∘ op_i.
- bound_width()#
Compute the width of the bounds for this expression.
- bound_width_reasons_breakdown()#
Compute the breakdown of the bound width by reason.
- center()#
Compute the center of the bounds for this expression.
- diag(diagonal=0)#
- expand(*sizes)#
- expand_on(dim, size)#
- flatten(start_dim=0, end_dim=-1)#
- flip(dims)#
- gather(indices, dim=0)#
- is_symmetric_to_0()#
Return True if this expression is symmetric about zero, else False.
- lb()#
Compute a lower bound for this expression.
- max_bound_width()#
Compute the maximum width across all output dimensions.
- mean(dim=None, keepdim=False)#
- narrow(dim, start, length)#
- permute(*dims)#
- repeat(*sizes)#
- replace_subnode_once(replace_fn)#
Return a new expression with the same structure but sub-expressions replaced by replace_fn.
- reshape(*shape)#
- roll(shifts, dims)#
- scatter(indices, output_shape)#
- property shape: torch.Size#
The shape of the output(s) produced by this expression.
- simplify_ops_()#
Recursively compute simplified ops for affine expressions.
- split_const()#
Decompose this AffineSum into a constant part and a zero-constant AffineSum.
- squeeze(dim=None)#
- sum(dim=None, keepdim=False)#
- 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.
- uncertainty_reasons()#
Compute the breakdown of the bound width by reason, aggregated to total contributions.
- unflatten(dim, sizes)#
- unsqueeze(dim)#
- with_children(*new_children)#
Return a new AffineSum with the same ops but new children.
- zeros_set(output_shape)#