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
उपरोक्त स्निपेट में मापदंडों द्वारा क्या भूमिका निभाई जा रही है ?