Comme par TensorFlow de la documentation , l' prefetch
et map
méthodes tf.contrib.data.Dataset
classe, les deux ont un paramètre appelé buffer_size
.
Pour prefetch
méthode, le paramètre est connu comme l' buffer_size
et selon la documentation :
buffer_size: Un tf.int64 scalaire tf.Tenseur, représentant le maximum nombre d'éléments qui vont être mis en mémoire tampon lors de la pré-chargement.
Pour l' map
méthode, le paramètre est connu comme l' output_buffer_size
et selon la documentation :
output_buffer_size: (Facultatif.) Une tf.int64 scalaire tf.Tenseur, représentant le nombre maximal de transformation des éléments qui seront mise en mémoire tampon.
De même pour l' shuffle
méthode, la même quantité apparaît et selon la documentation :
buffer_size: Un tf.int64 scalaire tf.Tenseur, représentant le nombre de les éléments de ce jeu de données à partir de laquelle le nouveau jeu de données sera de l'échantillon.
Quelle est la relation entre ces paramètres ?
Supposons que je créer unDataset
objet comme suit :
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)
Quel rôle est joué par l' buffer
paramètres dans l'extrait ci-dessus ?