Набор данных TensorFlow: перетасовка имен файлов и перетасовка данных после загрузки

#tensorflow #tensorflow-datasets

#tensorflow #tensorflow-наборы данных

Вопрос:

Я нашел кучу вопросов о перетасовке набора данных, но ни один из них не подразумевает, почему просто перетасовки имен файлов недостаточно. Ниже приведен код для загрузки набора данных для задачи сегментации изображения:

 train_files = tf.data.Dataset.list_files(self.training_path)
train_files = train_files.shuffle(buffer_size=15000)
train_dataset = train_files.map(self.parse_image)

# -- Train Dataset --#
dataset['train'] = dataset['train'].map(self.load_image_train, num_parallel_calls=2)
#dataset['train'] = dataset['train'].shuffle(buffer_size=15000) 
dataset['train'] = dataset['train'].batch(self.batch_size)
dataset['train'] = dataset['train'].prefetch(buffer_size=1)  # will prefetch 1 batch
  

Вопрос в том, что dataset['train'] = dataset['train'].shuffle(buffer_size=15000) необходимо для перетасовки данных, потому что я уже перетасовал имена файлов?

Комментарии:

1. Нет, в этом нет необходимости.

2. Я думаю, что это другое. Таким образом, данные просто перетасовываются в начале и только один раз, и сеть будет получать один и тот же набор данных в каждую эпоху. При перетасовке загруженной даты происходит перетасовка в начале каждой эпохи, поэтому в каждой эпохе разные шаблоны. я прав?