Ich habe einige Trainingsdaten x_train
und einige entsprechende Etiketten für diese x_train
namens y_train
. Hier ist, wie x_train
und y_train
aufgebaut sind:LSTM mit keras
train_x = np.array([np.random.rand(1, 1000)[0] for i in range(10000)])
train_y = (np.random.randint(1,150,10000))
train_x
hat 10000 Zeilen und 1000 Spalten für jede Zeile. train_y
hat eine Bezeichnung zwischen 1 und 150 für jede Probe in train_x und repräsentiert einen Code für jede train_x-Probe.
Ich habe auch eine Probe namens Probe, die 1 Zeile mit 1000 Spalten ist, die ich für die Vorhersage auf diesem LSTM-Modell verwenden möchte. Diese Variable ist als
sample = np.random.rand(1,1000)[0]
definiert. Ich versuche, ein LSTM auf diese Daten mit Keras zu trainieren und vorherzusagen. Ich möchte diesen Feature-Vektor aufnehmen und diesen LSTM verwenden, um einen der Codes im Bereich von 1 bis 150 vorherzusagen. Ich weiß, dass dies zufällige Arrays sind, aber ich kann die Daten, die ich habe, nicht posten. Ich habe den folgenden Ansatz versucht, die ich arbeiten glauben sollte, aber bin vor ein paar Probleme
model = Sequential()
model.add(LSTM(output_dim = 32, input_length = 10000, input_dim = 1000,return_sequences=True))
model.add(Dense(150, activation='relu'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
history = model.fit(train_x, train_y,
batch_size=128, nb_epoch=1,
verbose = 1)
model.predict(sample)
Hilfe oder Anpassungen dieser Pipeline wäre toll. Ich bin mir nicht sicher, ob die output_dim
korrekt ist. Ich möchte den LSTM an jedem Beispiel der 1000-dimensionalen Daten trainieren und dann einen spezifischen Code reproduzieren, der zwischen 1 und 150 liegt. Danke.
so, als ich. zu einem einzigen kodierten Vektor der Länge 150 wechseln, bekomme ich an jedem Ort eine Menge Dezimalzahlen für die Vorhersagen.Was stellen diese Dezimalzahlen dar? Sind sie eine Wahrscheinlichkeit, dass es sich um Klasse 1,2,3, ..., 150 handelt? –
Ja - aber erinnere dich an ab out diese 0-basierte Array-Indizierung. Wahrscheinlichkeit der Klasse 1 ist bei Index 0, - der Klasse 2 - bei Index 1, etc. –
ok super danke! Könnten Sie dies mit einem k enkodierten Vektor tun? Sagen wir, dass wir für Probe 1 [5, 8, 9] und Probe 2 [130, 11, 12, 5, 9] hatten, wo es eine andere Anzahl von Labels gab? –