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 larger temperature 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

RandomOptimizer

__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

__call__(inputs, output, size_dict, memory_limit)

Call self as a function.

__del__()

__delattr__

Implement delattr(self, name).

__dir__

Default dir() implementation.

__eq__

Return self==value.

__format__

Default object formatter.

__ge__

Return self>=value.

__getattribute__

Return getattr(self, name).

__gt__

Return self>value.

__hash__

Return hash(self).

__init__([cost_fn, temperature, …])

Initialize self.

__init_subclass__

This method is called when a class is subclassed.

__le__

Return self<=value.

__lt__

Return self<value.

__ne__

Return self!=value.

__new__

Create and return a new object.

__reduce__

Helper for pickle.

__reduce_ex__

Helper for pickle.

__repr__

Return repr(self).

__setattr__

Implement setattr(self, name, value).

__sizeof__

Size of object in memory, in bytes.

__str__

Return str(self).

__subclasshook__

Abstract classes can override this to customize issubclass().

_cancel_futures()

_gen_results_parallel(repeats, trial_fn, args)

Lazily generate results from an executor without submitting all jobs at once.

setup(inputs, output, size_dict)

Attributes

__dict__

__doc__

__module__

__weakref__

list of weak references to the object (if defined)

choose_fn

The function that chooses which contraction to take - make this a property so that temperature and nbranch etc.

parallel

path

The best path found so far.

property choose_fn

The function that chooses which contraction to take - make this a property so that temperature and nbranch etc. can be updated between runs.