2016-05-16 7 views
5

मैं अपने दस्तावेज़ में प्रत्येक टोकन के लिए घने वेक्टर प्रस्तुतियों को उत्पन्न करने के लिए एक एम्बेडिंग_lookup ऑपरेशन का उपयोग कर रहा हूं जो एक संक्रामक तंत्रिका नेटवर्क को खिला रहे हैं (नेटवर्क आर्किटेक्चर एक जैसा है एक WildML article)।लुकअप टेबल एम्बेड करना पैडिंग मान मास्क नहीं करता है

सब कुछ ठीक से काम करता है लेकिन जब मैं अपने दस्तावेज़ को पैडिंग मान डालने में पैड करता हूं, तो एम्बेडिंग लुकअप भी इस टोकन के लिए वेक्टर उत्पन्न करता है। मुझे लगता है कि यह दृष्टिकोण वर्गीकरण कार्य में परिणामों को बदल सकता है। मैं जो हासिल करना चाहता हूं वह कुछ है जो टॉर्च LookupTableMaskZero करता है।

1) क्या मैं सही करना चाहता हूं?

2) पहले से ही इस तरह कुछ लागू किया गया है?

3) यदि नहीं, तो इसके लिए संबंधित वेक्टर की पीढ़ी को रोकने के लिए मैं पैडिंग मूल्य कैसे मास्क कर सकता हूं?

अग्रिम धन्यवाद,

Alessandro

+0

क्या आपको कभी समाधान मिला? – Shatu

उत्तर

2

@Alessandro Suglia मुझे लगता है कि इस सुविधा के लिए उपयोगी है, दुर्भाग्य से tf अभी समर्थन नहीं। एक ही परिणाम प्राप्त करने के लिए एक कामकाज लेकिन धीमा है दो बार देखना है।

lookup_result = tf.nn.embedding_lookup(emb, index) 
    masked_emb = tf.concat(0, [tf.zeros([1, 1]), 
          tf.ones([emb.get_shape()[0] - 1, 1]) 
    mask_lookup_result = tf.nn.embedding_lookup(masked_emb, index) 
    lookup_result = tf.mul(lookup_result, mask_lookup_result) 
-1

नीचे की तरह यह प्रतीत कि rnn मॉडल में, हम जब तक हम नुकसान मुखौटा के रूप में गद्दी मूल्य मुखौटा की जरूरत नहीं है (हानि कोई बात नहीं हम इनपुट गद्दी मुखौटा है कि क्या एक ही है, मैं एक परीक्षण कोड चलाकर परिणाम)!

बेशक, में पैरामीटर sequence_len पैरामीटर पारित होने पर शून्य के लिए गणना को शून्य से गुणा करने के लिए शून्य हो सकता है।

अंत में, यदि मॉडल अनुक्रम के बीच इंटरैक्टिव करेगा (जैसे सीएनएन, रूपांतरण पैडिंग एम्बेडिंग को प्रभावित कर सकता है), शून्य पैडिंग एम्बेडिंग आवश्यक है।

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