(का उपयोग कर अजगर)आउटपुट LSTM सेल
मैं Tensorflow LSTM-कार्यान्वयन पर एक सवाल मिल गया है। वर्तमान में TF में कई कार्यान्वयन कर रहे हैं, लेकिन मैं का उपयोग करें:
cell = tf.contrib.rnn.BasicLSTMCell(n_units)
- जहां n_units 'समानांतर' LSTM कोशिकाओं की राशि है।
तब मेरे उत्पादन प्राप्त करने के लिए मैं फोन:
rnn_outputs, rnn_states = tf.nn.dynamic_rnn(cell, x,
initial_state=initial_state, time_major=False)
- जहां (
time_major=False
के रूप में)x
आकार के(batch_size, time_steps, input_length)
- जहां
batch_size
मेरी batch_size - जहां
time_steps
की राशि है है मेरे आरएनएन का समय - से गुजर जाएगा जहां
input_length
मेरी इनपुट वैक्टर में से एक (सदिश एक विशिष्ट बैच पर एक विशिष्ट timestep पर नेटवर्क में खिलाया) की लंबाई
मैं rnn_outputs के रूप में मैं एक और उत्पादन आकार निर्दिष्ट नहीं किया है आकार (batch_size, time_steps, n_units, input_length)
के होने की उम्मीद है। nn.dynamic_rnn
का दस्तावेज़ीकरण मुझे बताता है कि आउटपुट आकार (batch_size, input_length, cell.output_size)
है। tf.contrib.rnn.BasicLSTMCell
के प्रलेखन में output_size
है, जो n_units (एलएसटीएम-कोशिकाओं का उपयोग करने की मात्रा) के लिए डिफ़ॉल्ट है।
तो क्या प्रत्येक एलएसटीएम-सेल प्रत्येक दिए गए समय के लिए केवल एक स्केलर आउटपुट करता है? मैं उम्मीद करता हूं कि यह इनपुट वेक्टर की लंबाई के वेक्टर को आउटपुट करे। ऐसा लगता है कि मैं इसे अभी कैसे समझता हूं, इसलिए मैं उलझन में हूं। क्या आप मुझे बता सकते हैं कि यह मामला है या मैं इनपुट वेक्टर प्रति एकल एलएसटीएम-सेल के आकार के वेक्टर को आउटपुट करने के लिए कैसे बदल सकता हूं?
आप इस निष्कर्ष पर कैसे पहुंचे कि प्रत्येक एलएसटीएम सेल केवल प्रत्येक दिए गए समय के लिए एक स्केलर आउटपुट करता है? – jabalazs
क्या आप एक गिस्ट या बड़ा कोड स्निपेट पोस्ट कर सकते हैं ताकि हम संदर्भ को बेहतर ढंग से समझने के लिए कोड को देख सकें/चला सकें? –