opt_einsum.path_random.RandomGreedy¶
-
class
opt_einsum.path_random.
RandomGreedy
(cost_fn='memory-removed-jitter', temperature=1.0, rel_temperature=True, nbranch=8, **kwargs)[source]¶ Parameters: - cost_fn (callable, optional) – A function that returns a heuristic ‘cost’ of a potential contraction
with which to sort candidates. Should have signature
cost_fn(size12, size1, size2, k12, k1, k2)
. - temperature (float, optional) – When choosing a possible contraction, its relative probability will be
proportional to
exp(-cost / temperature)
. Thus the largertemperature
is, the further random paths will stray from the normal ‘greedy’ path. Conversely, if set to zero, only paths with exactly the same cost as the best at each step will be explored. - rel_temperature (bool, optional) – Whether to normalize the
temperature
at each step to the scale of the best cost. This is generally beneficial as the magnitude of costs can vary significantly throughout a contraction. If False, the algorithm will end up branching when the absolute cost is low, but stick to the ‘greedy’ path when the cost is high - this can also be beneficial. - nbranch (int, optional) – How many potential paths to calculate probability for and choose from at each step.
- kwargs – Supplied to RandomOptimizer.
See also
-
__init__
(cost_fn='memory-removed-jitter', temperature=1.0, rel_temperature=True, nbranch=8, **kwargs)[source]¶ Initialize self. See help(type(self)) for accurate signature.
Methods
__init__
([cost_fn, temperature, …])Initialize self. setup
(inputs, output, size_dict)Attributes
choose_fn
The function that chooses which contraction to take - make this a property so that temperature
andnbranch
etc.path
The best path found so far. -
choose_fn
¶ The function that chooses which contraction to take - make this a property so that
temperature
andnbranch
etc. can be updated between runs.
- cost_fn (callable, optional) – A function that returns a heuristic ‘cost’ of a potential contraction
with which to sort candidates. Should have signature