В соответствии с 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
в приведенном выше фрагменте?