Zgodnie TensorFlow dokumentacji , to prefetch
i map
metody tf.contrib.data.Dataset
klasy, obie posiadają parametr zwany buffer_size
.
W przypadku prefetch
metody parametr jest znany jako buffer_size
i zgodnie z dokumentacją:
buffer_size: tf.int64 skalarny tf.Tensor, reprezentujący maksymalną liczbę elementów, które będą buforowane podczas wstępnego pobierania.
W map
metodzie parametr jest znany jako output_buffer_size
i zgodnie z dokumentacją:
output_buffer_size: (opcjonalny). Tf.Tensor skalarny tf.int64, reprezentujący maksymalną liczbę przetwarzanych elementów, które będą buforowane.
Podobnie dla shuffle
metody pojawia się ta sama ilość i zgodnie z dokumentacją:
buffer_size: skalarny tf.int64 tf.Tensor, reprezentujący liczbę elementów z tego zbioru danych, z których będzie próbkowany nowy zestaw danych.
Jaka jest zależność między tymi parametrami?
Załóżmy, że utworzę Dataset
obiekt w następujący sposób:
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)
Jaką rolę odgrywają buffer
parametry w powyższym fragmencie?