tf.random.fold_in
Добавляет данные к начальному значению генератора случайных чисел (RNG), формируя новое начальное значение RNG.
tf.random.fold_in(
seed, data, alg='auto_select'
)
Например, в сценарии распределённого обучения предположим, что у нас есть начальное значение для всей системы и идентификатор реплики. Мы хотим добавить идентификатор реплики к начальному значению для всей системы, чтобы получить «начальное значение реплики», которое эта реплика будет использовать позже. Таким образом, разные реплики будут генерировать разные случайные числа, но воспроизводимость всей системы по-прежнему можно будет контролировать с помощью начального значения для всей системы:
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 | начальное значение RNG (тензор с формой [2] и типом данных int32 или int64). (При использовании XLA допускается только int32.) |
data | скаляр типа int32 или int64, представляющий данные, которые нужно добавить к начальному значению. |
alg | Алгоритм RNG, используемый для генерации случайных чисел. Подробное объяснение см. в разделе tf.random.stateless_uniform. |
| Возвращаемое значение | |
|---|---|
Новое начальное значение RNG, являющееся детерминированной функцией входных данных и статистически безопасное для создания последовательности новых псевдослучайных значений. Оно будет иметь тот же тип данных, что и data (если у data не указан явный тип данных, он будет определён с помощью tf.convert_to_tensor). |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/random/fold_in