Tôi đang cố gắng sử dụng ví dụ được mô tả trong tài liệu Keras có tên "LSTM xếp chồng để phân loại theo trình tự" (xem mã bên dưới) và không thể tìm ra input_shape
tham số trong ngữ cảnh dữ liệu của tôi.
Tôi có một ma trận gồm 25 ký tự có thể được mã hóa trong các số nguyên thành một chuỗi có độ dài tối đa 31. Kết quả là, tôi x_train
có (1085420, 31)
ý nghĩa hình dạng (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))
Trong mã x_train
này có hình dạng (1000, 8, 16)
, như đối với một mảng gồm 1000 mảng gồm 8 mảng gồm 16 phần tử. Ở đó tôi hoàn toàn bị mất về những gì và làm thế nào dữ liệu của tôi có thể đạt đến hình dạng này.
Nhìn vào tài liệu của Keras và các hướng dẫn và hỏi đáp khác nhau, có vẻ như tôi đang thiếu một cái gì đó rõ ràng. Ai đó có thể cho tôi một gợi ý về những gì cần tìm?
Cảm ơn bạn đã giúp đỡ !