2017-02-27 17 views
5
  • कैसे विशेष रूप से जब tf.nn.rnn_cell.DropoutWrapper() कॉल छोड़ने वालों लागू tensorflow करता है?

आरएनएन के संदर्भों के लिए ड्रॉपआउट को लागू करने के बारे में मैंने जो कुछ भी पढ़ा है, वह Zaremba et. al है जो कहता है कि आवर्ती कनेक्शन के बीच ड्रॉपआउट लागू नहीं होता है। एलएसटीएम परतों के पहले या बाद में न्यूरॉन्स को यादृच्छिक रूप से बाहर निकाला जाना चाहिए, लेकिन अंतर-एलएसटीएम परतें नहीं। ठीक।Tensorflow LSTM छोड़ने वालों कार्यान्वयन

  • मेरे पास सवाल यह है कि समय के संबंध में न्यूरॉन्स कैसे बंद हो जाते हैं?

कागज है कि हर कोई हवाला देते में, ऐसा लगता है कि एक यादृच्छिक 'छोड़ने वालों मुखौटा' प्रत्येक timestep पर लागू किया जाता है, बल्कि एक यादृच्छिक 'छोड़ने वालों मुखौटा' पैदा करने और इसे पुन: उपयोग की तुलना में, किसी दिए गए सभी timesteps पर लागू परत गिरा दी जा रही है। फिर अगले बैच पर एक नया 'ड्रॉपआउट मास्क' उत्पन्न करना।

आगे, और शायद इस समय और अधिक मायने रखता है, यह कैसे tensorflow करता है? मैंने tensorflow एपीआई की जांच की है और एक विस्तृत स्पष्टीकरण के लिए चारों ओर खोज करने की कोशिश की है लेकिन अभी तक एक खोजने के लिए है।

  • क्या वास्तविक tensorflow स्रोत कोड में खोदने का कोई तरीका है?
+2

सभी स्रोत कोड github – user2717954

उत्तर

1

रखने संभावनाओं आपके द्वारा निर्दिष्ट के साथ कार्यान्वयन here.

यह RNNCell में इनपुट पर dropout op का उपयोग करता है की जाँच कर सकते, तो उत्पादन पर,।

ऐसा लगता है जैसे आप प्रत्येक अनुक्रम में इनपुट के लिए एक नया मुखौटा प्राप्त करते हैं, फिर आउटपुट के लिए। अनुक्रम के अंदर कोई बदलाव नहीं।

+1

धन्यवाद में उपलब्ध है। यह वास्तव में मुझे जवाब देता है, टीएनएसफ़ोर्लो में आरएनएन में इसका उपयोग करते समय ड्रॉपआउट को बार-बार लागू नहीं किया जाता है। इस सुविधा को चाहते हुए किसी के लिए, मैंने जिथूब, अंक # 7927 पर एक मुद्दा खोला। – beeCwright

+0

प्रासंगिक भाग को इंगित करने के लिए धन्यवाद! – Aaron