मुझे बहुत ही साधारण समस्या है लेकिन मुझे इसे हल करने के लिए एक सही उपकरण नहीं मिल रहा है।
मेरे पास उसी लंबाई के वैक्टर के कुछ अनुक्रम हैं। अब मैं इन अनुक्रमों के ट्रेन नमूने पर LSTM RNN को प्रशिक्षित करना चाहता हूं और फिर कई प्राइमिंग वैक्टरों के आधार पर लंबाई के वैक्टर के नए अनुक्रम की भविष्यवाणी करना चाहता हूं ।
मुझे सरल कार्यान्वयन नहीं मिल रहा है जो ऐसा करेगा। मेरी आधार भाषा पायथन है, लेकिन जो कुछ भी दिनों के लिए स्थापित नहीं होता है वह आयोजित करेगा।
मैंने Lasagne का उपयोग करने की कोशिश की , लेकिन RNN का कार्यान्वयन अभी तक तैयार नहीं है और यह अलग-अलग पैकेज nntools में है । वैसे भी, मैंने बाद वाले की कोशिश की, लेकिन मैं यह पता नहीं लगा सकता कि इसे कैसे प्रशिक्षित किया जाए, फिर इसे कुछ टेस्ट वैक्टरों द्वारा प्राइम किया और इसे न्यूऑन (ओं) का अनुमान लगाने दिया। ब्लॉक एक ही समस्या है - LSTM RNN के लिए कोई दस्तावेज उपलब्ध नहीं है, हालांकि ऐसा लगता है कि कुछ वर्ग और कार्य हैं जो काम कर सकते हैं (जैसे blocks.bricks.recurrent
)।
थेनो, की तरह में RNN LSTM के कई कार्यान्वयन कर रहे हैं GroundHog
, theano-rnn
, theano_lstm
और कुछ कागजात के लिए कोड, लेकिन उन के पास ट्यूटोरियल गैर या कैसे मैं क्या चाहते करने के लिए मार्गदर्शन।
एकमात्र उपयोगी समाधान जो मैंने पाया है वह Pybrain का उपयोग कर रहा था। लेकिन दुर्भाग्य से इसमें थीनो (मुख्य रूप से GPU कम्प्यूटेशन) की सुविधाओं का अभाव है और यह अनाथ है (कोई नई सुविधाएँ और समर्थन नहीं)।
क्या किसी को पता है कि मुझे वह कहाँ मिल सकता है जो मैं माँग रहा हूँ? वैक्टर के दृश्यों की भविष्यवाणी के लिए RNN LSTM के साथ काम करना आसान है?
संपादित करें:
मैंने केरस को इस तरह आज़माया:
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.layers.embeddings import Embedding
from keras.layers.recurrent import LSTM
model = Sequential()
model.add(Embedding(12, 256))
model.regularizers = []
model(LSTM(256, 128, activation='sigmoid',
inner_activation='hard_sigmoid'))
model.add(Dropout(0.5))
model.add(Dense(128, 12))
model.add(Activation('sigmoid'))
model.compile(loss='mean_squared_error', optimizer='rmsprop')
लेकिन मुझे यह त्रुटि तब आ रही है जब इसे फिट करने की कोशिश की जा रही है model.fit(X_train, y_train, batch_size=16, nb_epoch=10)
IndexError: index 800 is out of bounds for axis 1 with size 12
जबकि X_train
और y_train
, जैसे (लंबाई 12 की) सरणियों के सरणियों हैं[[i for i in range(12)] for j in range(1000)]