Ich bekomme immer einen input_shape Fehler aus dem folgenden Code.Warum bekomme ich einen Keras LSTM RNN input_shape Fehler?
from keras.models import Sequential
from keras.layers.core import Dense, Activation, Dropout
from keras.layers.recurrent import LSTM
def _load_data(data):
"""
data should be pd.DataFrame()
"""
n_prev = 10
docX, docY = [], []
for i in range(len(data)-n_prev):
docX.append(data.iloc[i:i+n_prev].as_matrix())
docY.append(data.iloc[i+n_prev].as_matrix())
if not docX:
pass
else:
alsX = np.array(docX)
alsY = np.array(docY)
return alsX, alsY
X, y = _load_data(dframe)
poi = int(len(X) * .8)
X_train = X[:poi]
X_test = X[poi:]
y_train = y[:poi]
y_test = y[poi:]
input_dim = 3
Alles oben genannte läuft glatt. Hier läuft es schief.
in_out_neurons = 2
hidden_neurons = 300
model = Sequential()
#model.add(Masking(mask_value=0, input_shape=(input_dim,)))
model.add(LSTM(in_out_neurons, hidden_neurons, return_sequences=False, input_shape=(len(full_data),)))
model.add(Dense(hidden_neurons, in_out_neurons))
model.add(Activation("linear"))
model.compile(loss="mean_squared_error", optimizer="rmsprop")
model.fit(X_train, y_train, nb_epoch=10, validation_split=0.05)
Es gibt diesen Fehler zurück.
Exception: Invalid input shape - Layer expects input ndim=3, was provided with input shape (None, 10320)
Wenn ich überprüfe the website sagt es ein Tupel zu spezifizieren "(z.B. (100,) für 100-dimensionale Eingänge)."
Das heißt, mein Datensatz besteht aus einer Spalte mit einer Länge von 10320. Ich nehme an, dass das bedeutet, dass ich (10320,)
als Eingabe shape setzen sollte, aber ich bekomme den Fehler sowieso. Hat jemand eine Lösung?
irgendein Glück mit diesem? – Radix
Kein Typ. Es ist eine Tragödie. Ich musste deswegen zur Beratung gehen. Ich brach. – NickTheInventor
Gefunden das - scheint wie Sie manuell die Epochen durchführen müssen (letztes Bit des Codes): https://github.com/fchollet/keras/blob/master/examples/stateful_lstm.py – Radix