Saya mencoba menggunakan contoh yang dijelaskan dalam dokumentasi Keras bernama "Stacked LSTM untuk klasifikasi urutan" (lihat kode di bawah) dan tidak dapat menemukan input_shape
parameter dalam konteks data saya.
Saya telah memasukkan matriks urutan 25 karakter yang mungkin dikodekan dalam bilangan bulat ke urutan empuk dengan panjang maksimum 31. Sebagai hasilnya, saya x_train
memiliki (1085420, 31)
makna bentuk (n_observations, sequence_length)
.
from keras.models import Sequential
from keras.layers import LSTM, Dense
import numpy as np
data_dim = 16
timesteps = 8
num_classes = 10
# expected input data shape: (batch_size, timesteps, data_dim)
model = Sequential()
model.add(LSTM(32, return_sequences=True,
input_shape=(timesteps, data_dim))) # returns a sequence of vectors of dimension 32
model.add(LSTM(32, return_sequences=True)) # returns a sequence of vectors of dimension 32
model.add(LSTM(32)) # return a single vector of dimension 32
model.add(Dense(10, activation='softmax'))
model.compile(loss='categorical_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
# Generate dummy training data
x_train = np.random.random((1000, timesteps, data_dim))
y_train = np.random.random((1000, num_classes))
# Generate dummy validation data
x_val = np.random.random((100, timesteps, data_dim))
y_val = np.random.random((100, num_classes))
model.fit(x_train, y_train,
batch_size=64, epochs=5,
validation_data=(x_val, y_val))
Dalam kode ini x_train
memiliki bentuk (1000, 8, 16)
, seperti untuk array 1000 array 8 array 16 elemen. Di sana saya benar-benar tersesat pada apa dan bagaimana data saya dapat mencapai bentuk ini.
Melihat Keras doc dan berbagai tutorial dan T&J, sepertinya saya kehilangan sesuatu yang jelas. Bisakah seseorang memberi saya petunjuk tentang apa yang harus dicari?
Terima kasih atas bantuan Anda !
sumber
Saya tahu ini bukan jawaban langsung untuk pertanyaan Anda. Ini adalah contoh yang disederhanakan dengan hanya satu sel LSTM, membantu saya memahami operasi pembentukan kembali untuk data input.
Ini akan menjadi contoh jaringan LSTM dengan hanya satu sel LSTM dan dengan data input bentuk tertentu.
Ternyata, kami hanya memprediksi di sini, pelatihan tidak hadir untuk kesederhanaan, tetapi lihat bagaimana kami perlu membentuk kembali data (untuk menambah dimensi tambahan) sebelum
predict
metode.sumber