В соответствии с TensorFlow документация, методы prefetch и map класса tf.contrib.data.Dataset, оба параметра имеют параметр buffer_size,
Для метода prefetch параметр известен как buffer_size и согласно документации:
buffer_size: скаляр tf.int64 tf.Tensor, представляющий максимум числовые элементы, которые будут буферизироваться при предварительной выборке.
Для метода map параметр известен как output_buffer_size и согласно документации:
output_buffer_size: (Необязательно.) Сканер tf.int64 tf.Tensor, представляющее максимальное количество обработанных элементов, которые будут буфер.
Аналогично для метода shuffle появляется такое же количество и согласно документации:
buffer_size: скаляр tf.int64 tf.Tensor, представляющий число элементы из этого набора данных, из которого будет отсчитываться новый набор данных.
Какова связь между этими параметрами?
Предположим, что я создаю объект Dataset следующим образом:
tr_data = TFRecordDataset(trainfilenames)
tr_data = tr_data.map(providefortraining, output_buffer_size=10 * trainbatchsize, num_parallel_calls\
=5)
tr_data = tr_data.shuffle(buffer_size= 100 * trainbatchsize)
tr_data = tr_data.prefetch(buffer_size = 10 * trainbatchsize)
tr_data = tr_data.batch(trainbatchsize)
Какую роль играют параметры buffer в приведенном выше фрагменте?