相关疑难解决方法(0)

dataset.map,Dataset.prefetch和Dataset.shuffle中buffer_size的含义

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

对于prefetch方法,该参数称为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)
Run Code Online (Sandbox Code Playgroud)

buffer上述代码段中的参数扮演了什么角色?

tensorflow tensorflow-gpu tensorflow-datasets

68
推荐指数
3
解决办法
3万
查看次数