TensorFlow प्रलेखन के अनुसार , prefetchऔर कक्षा के mapतरीके tf.contrib.data.Dataset, दोनों में एक पैरामीटर है buffer_size।
के लिए prefetchविधि, पैरामीटर के रूप में जाना जाता है buffer_sizeऔर प्रलेखन के अनुसार:
बफर_साइज़: एक tf.int64 स्केलर tf.Tensor, अधिकतम संख्या तत्वों का प्रतिनिधित्व करता है जो प्रीफ़ैचिंग होने पर बफ़र हो जाएंगे।
के लिए mapविधि, पैरामीटर के रूप में जाना जाता है output_buffer_sizeऔर प्रलेखन के अनुसार:
output_buffer_size: (वैकल्पिक) एक tf.int64 स्केलर tf.Tensor, बफ़र किए जाने वाले संसाधित तत्वों की अधिकतम संख्या का प्रतिनिधित्व करेगा।
इसी तरह shuffleविधि के लिए, एक ही मात्रा प्रकट होती है और प्रलेखन के अनुसार:
बफर_साइज़: एक 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उपरोक्त स्निपेट में मापदंडों द्वारा क्या भूमिका निभाई जा रही है ?