2016-05-10 11 views
5

मैं केरास का उपयोग करके अपने तंत्रिका नेटवर्क से कुछ NaN आउटपुट प्राप्त करता रहता हूं। मुझे केवल 10,000 परिणामों के बारे में एक नाएन मिलता है। मूल रूप से मेरे पास अंतिम सॉफ्टमैक्स परत में एक रिला सक्रियण परत थी। इसने अधिक NaN परिणाम उत्पन्न किए। मैंने सिग्मोइड से सिग्मोइड से संवैधानिक नेटवर्क में पिछले दो घने परतों के लिए सक्रियण समारोह बदल दिया। इसने समस्या को बेहतर बना दिया लेकिन मुझे अभी भी NaN मिल गया। मैं नैन को पूरी तरह खत्म कैसे कर सकता हूं इसके लिए कोई सलाह?केरास तंत्रिका नेट, आउटपुट में NaN मानों को कैसे हटाएं?

model = Sequential() 
model.add(InputLayer((1, IMG_H, IMG_W))) 

model.add(Convolution2D(32, 3, 3, activation = 'relu')) 
model.add(Convolution2D(32, 3, 3, activation = 'relu')) 
model.add(MaxPooling2D(pool_size = (2, 2))) 

model.add(Dropout(0.3)) 

model.add(Convolution2D(64, 3, 3, activation = 'relu')) 
model.add(Convolution2D(64, 3, 3, activation = 'relu')) 
model.add(MaxPooling2D(pool_size = (2, 2))) 

model.add(Dropout(0.3)) 

model.add(Flatten()) 
model.add(Dense(256, activation = 'sigmoid')) 
model.add(Dropout(0.3)) 
model.add(Dense(64, activation = 'sigmoid')) 
model.add(Dropout(0.3)) 
model.add(Dense(categories, activation = 'softmax')) 
+1

आपके आउटपुट/हानियों में NaNs हमेशा एक बहुत ही खराब संकेत होते हैं। क्या आपने अपना इनपुट प्रीप्रोसेस/सामान्यीकृत किया था? क्या आपकी सीखने की दर काफी कम है? डेटा पूर्वप्रोसेस्ड सही ढंग से होने पर NaNs कभी नहीं होना चाहिए। [यह] (http://cs231n.github.io/neural-networks-2/) मदद कर सकता है। – sascha

+0

मैंने 1 और 0 के बीच अपना इनपुट सामान्यीकृत किया। मैंने 0.01 और 0.001 के बीच एक छोटी सी सीखने की दर का उपयोग किया। अभी मैं यह देखने के लिए वजन नियमितकरण जोड़ रहा हूं कि इससे मदद मिलती है या नहीं। – chasep255

+0

0-1 के बीच सामान्यीकरण आवश्यक नहीं है जो आप चाहते हैं। यह sklearn में MinMax-scaler की तरह लगता है। आप स्केलेर्न में औसत और भिन्नता उर्फ ​​मानक स्केलर को सामान्य बनाना चाहते हैं। एसजीडी-आधारित एल्गोरिदम का उपयोग करते समय यह बहुत महत्वपूर्ण है! आपके मामले में मतलब >> 0.0 होगा और मुझे लगता है कि आपने भिन्नता को नहीं बदला है। – sascha

उत्तर

2

ऐसा लगता है आप समस्या को हल कर दिया है की तरह है, लेकिन भविष्य में संदर्भ के लिए एक nice question जो अन्य बातों के अलावा जाँच करें कि क्या आप नेन आदानों है की सिफारिश की है।

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