размер буфера
сно TensorFlowдокументация ,prefetch
а такжеmap
методыtf.contrib.data.Dataset
класс, оба имеют параметр с именемbuffer_size
.
Заprefetch
Метод, параметр известен какbuffer_size
и согласно документации:
buffer_size: скалярный tf.Tensor tf.int64, представляющий максимальное количество элементов, которые будут буферизироваться при предварительной выборке.
Дляmap
Метод, параметр известен какoutput_buffer_size
и согласно документации:
output_buffer_size: (Необязательно.) Скалярный tf.Tensor tf.int64, представляющий максимальное количество обработанных элементов, которые будут буферизованы.
Аналогично дляshuffle
Метод, такое же количество появляется и согласно документации:
buffer_size: скалярный tf.Tensor tf.int64, представляющий количество элементов из этого набора данных, из которого будет сэмплирован новый набор данных.
Какова связь между этими параметрами?
Предположим, я создаю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
параметры в приведенном фрагменте?