Significado de buffer_size en Dataset.map, Dataset.prefetch y Dataset.shuffle

Según TensorFlowdocumentación , elprefetch ymap métodos detf.contrib.data.Dataset clase, ambos tienen un parámetro llamadobuffer_size.

porprefetch método, el parámetro se conoce comobuffer_size y de acuerdo con la documentación:

buffer_size: un tf.int64 scalar tf.Tensor, que representa el número máximo de elementos que se almacenarán en el búfer cuando se recupere previamente.

Para elmap método, el parámetro se conoce comooutput_buffer_size y de acuerdo con la documentación:

output_buffer_size: (Opcional). Un tf.int64 scalar tf.Tensor, que representa el número máximo de elementos procesados que se almacenarán en el búfer.

Del mismo modo para elshuffle método, aparece la misma cantidad y según la documentación:

buffer_size: Un tf.int64 scalar tf.Tensor, que representa el número de elementos de este conjunto de datos de los cuales se muestreará el nuevo conjunto de datos.

¿Cuál es la relación entre estos parámetros?

Supongamos que creo unDataset objetar de la siguiente manera:

 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)

¿Qué papel está jugando elbuffer parámetros en el fragmento anterior?

Respuestas a la pregunta(5)

Su respuesta a la pregunta