PyTorch में, हम कई तरीकों से आर्किटेक्चर को परिभाषित कर सकते हैं। यहां, मैं Sequential
मॉड्यूल का उपयोग करके एक साधारण एलएसटीएम नेटवर्क बनाना चाहता हूं।अनुक्रमिक मॉड्यूल के साथ PyTorch में सरल एलएसटीएम
लुआ की मशाल में मैं आमतौर पर साथ जाना होगा:
model = nn.Sequential()
model:add(nn.SplitTable(1,2))
model:add(nn.Sequencer(nn.LSTM(inputSize, hiddenSize)))
model:add(nn.SelectTable(-1)) -- last step of output sequence
model:add(nn.Linear(hiddenSize, classes_n))
हालांकि, PyTorch में, मैं नहीं SelectTable
के बराबर पिछले उत्पादन प्राप्त करने के लिए मिल रहा है।
nn.Sequential(
nn.LSTM(inputSize, hiddenSize, 1, batch_first=True),
# what to put here to retrieve last output of LSTM ?,
nn.Linear(hiddenSize, classe_n))
मैंने पहले से ही इस एलएसटीएम को इस सटीक तरीके से कोड किया है। लेकिन मेरा सवाल यह है कि आप इसे अनुक्रमिक मॉड्यूल के भीतर कैसे करेंगे 'एनएन। आवश्यक'? एलएसटीएम आपके कोड में दो मान, 'आउटपुट' और 'एचएन' देता है, 'अनुक्रमिक' फैशन में आउटपुट [-1] कैसे प्राप्त करें? – BiBi
मुझे नहीं लगता कि मेरे जवाब को कम करना उचित है, हालांकि मैंने इसे इस तथ्य के अधिक प्रमाण डालने के लिए अपडेट किया है कि लूआ टॉर्च में कंटेनरों का उपयोग करना पुराना है। –
[इस पोस्ट] के अनुसार (https://discuss.pytorch.org/t/accessing-intermediate-data-in-nn-sequential/637), वे PyTorch में 'अनुक्रमिक' मॉड्यूल से छुटकारा पाना चाहते थे लेकिन वे इसे एक कंटेनर के रूप में अपनी सुविधा के लिए रखा है। मुझे लगता है कि 'अनुक्रमिक' कंटेनर के भीतर मध्यवर्ती आउटपुट तक पहुंचना संभव नहीं है। – BiBi