SharedNoiseTable

class maze.train.trainers.es.es_shared_noise_table.SharedNoiseTable(count: int = 250000000)

A fixed length vector of deterministically generated pseudo-random floats.

This enables a communication strategy for the distributed training, that allows to transfer noise table indices instead of full gradient vectors.

Parameters

count – Number of float values in the fixed length table (250.000.000 x 32bit floats = 1GB)

get(i: int, dim: int)numpy.ndarray

Get the pseudo-random sequence at table index i.

Parameters
  • i – start index within the table

  • dim – desired vector length

:return A noise vector with length dim

sample_index(rng: numpy.random.RandomState)int

Sample a random index within the table, taking into account the size of the noise vector.

Parameters

rng – Maze random number generator to be used.

Returns

A noise index to be passed to maze.train.trainers.es.es_shared_noise_table.SharedNoiseTable.get().