आप शुरुआती उदाहरण में बहुत ही बुनियादी रैखिक मॉडल का उपयोग कर रहे हैं?
यहाँ यह डिबग करने के लिए एक चाल है - क्रोस एंट्रोपी घड़ी के रूप में आप बैच का आकार बढ़ाने के (पहली पंक्ति, दूसरी मैं सिर्फ जोड़ा उदाहरण से है):
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
cross_entropy = tf.Print(cross_entropy, [cross_entropy], "CrossE")
का एक बैच आकार पर 204, आप देखेंगे:
I tensorflow/core/kernels/logging_ops.cc:64] CrossE[92.37558]
I tensorflow/core/kernels/logging_ops.cc:64] CrossE[90.107414]
लेकिन 205 पर, तो आप इस तरह एक दृश्य देखेंगे, शुरू से ही:
I tensorflow/core/kernels/logging_ops.cc:64] CrossE[472.02966]
I tensorflow/core/kernels/logging_ops.cc:64] CrossE[475.11697]
I tensorflow/core/kernels/logging_ops.cc:64] CrossE[1418.6655]
I tensorflow/core/kernels/logging_ops.cc:64] CrossE[1546.3833]
I tensorflow/core/kernels/logging_ops.cc:64] CrossE[1684.2932]
I tensorflow/core/kernels/logging_ops.cc:64] CrossE[1420.02]
I tensorflow/core/kernels/logging_ops.cc:64] CrossE[1796.0872]
I tensorflow/core/kernels/logging_ops.cc:64] CrossE[nan]
एएके - नाएन दिखा रहा है। असल में, बड़ा बैच आकार इतना विशाल ढाल बना रहा है कि आपका मॉडल नियंत्रण से बाहर हो रहा है - जो आवेदन इसे लागू कर रहे हैं, वे बहुत बड़े हैं, और दिशा को ओवरहाइट करना इसे एक विशाल मार्जिन से जाना चाहिए।
प्रैक्टिस में, इसे ठीक करने के कुछ तरीके हैं। आप सीखने की दर को .01 से कह सकते हैं, .005, जिसके परिणामस्वरूप 0.92 की अंतिम सटीकता है।
train_step = tf.train.GradientDescentOptimizer(0.005).minimize(cross_entropy)
या आप एक और अधिक परिष्कृत अनुकूलन एल्गोरिथ्म (एडम, गति, आदि) अधिक करने के लिए ढाल की दिशा यह पता लगाने की कोशिश करता है कि इस्तेमाल कर सकते हैं। या आप एक अधिक जटिल मॉडल का उपयोग कर सकते हैं जिसमें उस बड़े ढाल को फैलाने के लिए अधिक मुक्त पैरामीटर हों।
मामले तुम मुझे के रूप में ही बग से पीड़ित रहे हैं में किया, आप यहां जांच कर सकते हैं: http://stackoverflow.com/questions/33712178/tensorflow-nan-bug – user1111929