Ich versuche das in der Keras-Dokumentation beschriebene Beispiel mit dem Namen "Stacked LSTM for Sequence Classification" (siehe Code unten) zu verwenden und kann den input_shape
Parameter im Kontext meiner Daten nicht herausfinden .
Ich habe als Eingabe eine Matrix von Sequenzen von 25 möglichen ganzen Zahlen in einem aufgefüllten Folge maximaler Länge codierten Zeichen 31. Als Ergebnis meines x_train
hat die Form (1085420, 31)
Bedeutung (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))
In diesem Code x_train
hat die Form (1000, 8, 16)
, wie für ein Array von 1000 Arrays von 8 Arrays von 16 Elementen. Dort verliere ich mich völlig darüber, was ist und wie meine Daten diese Form erreichen können.
Wenn ich mir Keras doc und verschiedene Tutorials und Fragen und Antworten anschaue, scheint mir etwas Offensichtliches zu fehlen. Kann mir jemand einen Tipp geben, wonach ich suchen soll?
Danke für Ihre Hilfe !
quelle
Ich weiß, es ist keine direkte Antwort auf Ihre Frage. Dies ist ein vereinfachtes Beispiel mit nur einer LSTM-Zelle, das mir hilft, die Umformungsoperation für die Eingabedaten zu verstehen.
Dies wäre ein Beispiel für ein LSTM-Netzwerk mit nur einer einzelnen LSTM-Zelle und Eingangsdaten mit einer bestimmten Form.
Es stellt sich heraus, dass wir hier nur vorhersagen, dass die Schulung der Einfachheit halber nicht vorhanden ist, sondern wie wir die Daten vor der
predict
Methode umformen mussten (um zusätzliche Dimensionen hinzuzufügen) .quelle