tf.random.experimental.stateless_fold_in
Складывает данные в начальное значение генератора псевдослучайных чисел, чтобы сформировать новое начальное значение генератора.
tf.random.experimental.stateless_fold_in(
seed, data
)
Например, в настройке распределённого обучения предположим, что у нас есть начальное значение генератора на главном узле и идентификатор реплики. Мы хотим сложить идентификатор реплики в начальное значение генератора на главном узле, чтобы сформировать «начальное значение генератора для реплики», которое будет использоваться этой репликой позже, чтобы разные реплики генерировали разные случайные числа, но воспроизводимость всей системы всё ещё могла управляться начальным значением генератора на главном узле:
master_seed = [1, 2] replica_id = 3 replica_seed = tf.random.experimental.stateless_fold_in( master_seed, replica_id) print(replica_seed) tf.Tensor([1105988140 3], shape=(2,), dtype=int32) tf.random.stateless_normal(shape=[3], seed=replica_seed) <tf.Tensor: shape=(3,), dtype=float32, numpy=array([0.03197195, 0.8979765 , 0.13253039], dtype=float32)>
| Аргументы | |
|---|---|
seed | начальное значение генератора псевдослучайных чисел (тензор с формой [2] и типом int32 или int64). (При использовании XLA разрешено только int32.) |
data | скаляр int32 или int64 представляющий данные, которые будут сложены в начальное значение. |
| Возвращаемое значение | |
|---|---|
Новое начальное значение генератора, которое является детерминированной функцией входных данных и статистически безопасно для создания потока новых псевдослучайных значений. У него будет такой же тип данных, как у data (если у data нет явного типа данных, тип данных будет определён функцией tf.convert_to_tensor). |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/random/experimental/stateless_fold_in