Saya memiliki masalah yang sangat sederhana tetapi saya tidak dapat menemukan alat yang tepat untuk menyelesaikannya.
Saya memiliki beberapa urutan vektor dengan panjang yang sama. Sekarang saya ingin melatih LSTM RNN pada sampel kereta dari urutan ini dan kemudian membuatnya untuk memprediksi urutan baru dari vektor panjang berdasarkan beberapa vektor priming .
Saya tidak dapat menemukan implementasi sederhana yang akan melakukan ini. Bahasa dasar saya adalah Python, tetapi apa pun yang tidak diinstal selama berhari-hari akan bertahan.
Saya mencoba menggunakan Lasagne , tetapi implementasi RNN belum siap dan itu dalam paket nntools terpisah . Ngomong-ngomong, saya mencoba yang terakhir tetapi saya tidak tahu cara melatihnya, lalu melengkapinya dengan beberapa vektor uji dan membiarkannya memprediksi yang baru. Blok adalah masalah yang sama - tidak ada dokumentasi yang tersedia untuk LSTM RNN, walaupun tampaknya ada beberapa kelas dan fungsi yang bisa berfungsi (misalnya blocks.bricks.recurrent
).
Ada beberapa pelaksanaan RNN LSTM di Theano, seperti GroundHog
, theano-rnn
, theano_lstm
dan kode untuk beberapa kertas, tetapi bukan dari mereka punya tutorial atau membimbing bagaimana melakukan apa yang saya inginkan.
Satu-satunya solusi yang dapat digunakan yang saya temukan adalah menggunakan Pybrain. Tapi sayangnya itu tidak memiliki fitur Theano (terutama perhitungan GPU) dan yatim piatu (tidak ada fitur dan dukungan baru).
Adakah yang tahu di mana saya bisa menemukan apa yang saya minta? Mudah digunakan dengan RNN LSTM untuk memprediksi urutan vektor?
Edit:
Saya mencoba Keras seperti ini:
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')
tapi saya mendapatkan kesalahan ini ketika mencoba memasangnya 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
sementara X_train
dan y_train
adalah array array (dengan panjang 12), misalnya[[i for i in range(12)] for j in range(1000)]