2016-11-01 16 views
10

मैं टेंसरफ्लो ट्यूटोरियल को आजमा रहा हूं और यह नहीं समझता कि इस लाइन में अगला_बैच कहां से आया है?TensorFlow ट्यूटोरियल batch_xs में next_batch कहां है, batch_ys = mnist.train.next_batch (100) से आते हैं?

batch_xs, batch_ys = mnist.train.next_batch(100) 

मैं

from tensorflow.examples.tutorials.mnist import input_data 
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) 

को देखा और next_batch वहाँ या तो नहीं देखा।

अब जब मेरे अपने कोड में next_batch बाहर की कोशिश कर रहा है, मैं

AttributeError: 'numpy.ndarray' object has no attribute 'next_batch' 

हो रही है तो मैं समझने के लिए जहां next_batch से आती है चाहते हैं?

+0

भी यहाँ से पूछा मिल: https://stackoverflow.com/questions/41454511/tensorflow-how-is -डेटसेट-ट्रेन-अगली-बैच-परिभाषित –

उत्तर

15

next_batchDataSet वर्ग (क्या कक्षा में है के बारे में अधिक जानकारी के लिए https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/learn/python/learn/datasets/mnist.py देखें) की एक विधि है:

यहाँ कुछ स्यूडोकोड है।

आप mnist डेटा लोड और साथ चर mnist के लिए असाइन करें जब: mnist.train के वर्ग में

mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) 

देखो। आप टाइप करके इसे देख सकते हैं:

print mnist.train.__class__ 

आप निम्नलिखित दिखाई देगा:

<class 'tensorflow.contrib.learn.python.learn.datasets.mnist.Dataset'> 

क्योंकि mnist.train वर्ग DataSet का एक उदाहरण है, तुम वर्ग के समारोह next_batch उपयोग कर सकते हैं। कक्षाओं के बारे में अधिक जानकारी के लिए, documentation देखें।

+0

ग्रेट स्पष्टीकरण धन्यवाद। – Dan

8

tensorflow भंडार के माध्यम से देखने के बाद, इसे यहाँ उत्पन्न लगता है:

https://github.com/tensorflow/tensorflow/blob/9230423668770036179a72414482d45ddde40a3b/tensorflow/contrib/training/python/training/sequence_queueing_state_saver.py#L905

हालांकि आप (अपने खुद के डेटासेट के लिए) अपने खुद के कोड में लागू करने के लिए देख रहे हैं, तो यह संभावना होगी जैसा कि मैंने किया था, डेटासेट ऑब्जेक्ट में इसे लिखना बहुत आसान है। जैसा कि मैं इसे समझता हूं, यह संपूर्ण डेटासेट को घुमाने के लिए एक तरीका है, और shuffled डेटासेट से नमूने की $ mini_batch_size संख्या वापस कर देता है।

shuffle data.x and data.y while retaining relation return [data.x[:mb_n], data.y[:mb_n]]

+0

यह बहुत अच्छा धन्यवाद है। – Dan

-2

तुम सिर्फ मदद फ़ंक्शन का उपयोग कर सकते हैं:

help(tf.contrib.learn.datasets.mnist.DataSet.next_batch) 

और समारोह के दस्तावेज़ next_batch

संबंधित मुद्दे