документация по функции tf.Dataset.data.shuffle заявляет следующее:
- reshuffle_each_iteration: (необязательно.) Логическое значение, которое, если оно равно true, указывает, что набор данных должен перетасовываться псевдослучайно каждый раз, когда он повторяется. (По умолчанию Истина.)
Однако значением по умолчанию для функции является None, как указано на той же странице и в фактический код:
def shuffle(self, buffer_size, seed=None, reshuffle_each_iteration=None):
Функция вызывает класс ShuffleDataset, функция __init__
которого также устанавливает для того же аргумента значение None по умолчанию и использует следующую логику, чтобы установить значение аргумента по умолчанию в True:
if reshuffle_each_iteration is None:
self._reshuffle_each_iteration = True
else:
self._reshuffle_each_iteration = reshuffle_each_iteration
Почему по умолчанию для аргумента не установлено значение True как в функции, так и в классе? Это сделало бы приведенный выше блок кода избыточным и позволило бы заменить его только self._reshuffle_each_iteration = reshuffle_each_iteration
.