Dataset.map,Dataset.prefetch和Dataset.shuffl

根据TensorFlow 文档,类的prefetch和map方法tf.contrib.data.Dataset都有一个名为的参数buffer_size。


对于prefetchmethod,该参数称为,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以上代码段中的参数在扮演什么角色?


阿晨1998
浏览 6991回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP