2017-09-25 6 views
1

Ich versuche, eine Reihe von Spektrogrammen in C-Klassen mit keras 'LSTM (mit einer dichten Schicht am Ende) zu klassifizieren. Zur Klarstellung gehört jedes Spektrogramm zu einer einzelnen Klasse von diesen C-Klassen. Jedes Spektrogramm ist im Grunde eine Matrix. Es wird konstruiert, indem (etwa K) Messungen für etwa 1000 Sekunden jede Sekunde gemacht werden. Also hat die Matrix K Zeilen und 1000 Spalten.Mehrdimensionale Eingabe in Keras LSTM - (für Klassifizierung)

In Anbetracht dessen, wie kann ich die Form dieses Eingangs für die LSTM-Schicht angeben?

Vielen Dank!

+0

Ignoriere den 'input_shape' Parametersatz' input_dim = 1000'. Die Anzahl der Zeilen ist irrelevant, solange das Modell eingegeben wird. Nebenfrage, ist ein Spektrogramm normalerweise kein Bild? Ref: https://keras.io/#getting-started-30-seconds-to-keras –

+0

Warum nicht nur ein voll verbundenes dichtes Netzwerk zuerst verwenden? 1000 Zeitschritte könnten an die Türen der verschwindenden Steigung klopfen. Außerdem müssen wir ein Beispiel des Codes sehen, schwer Vorschläge zu machen, wenn wir nicht sehen können, was Sie tun – DJK

Antwort

2

Es scheint nicht in der current documentation für LSTM-Schichten zu sein, aber input_shape kann als (timesteps, input_dim) bereitgestellt werden.

LSTM(num_units, input_shape=(1000, K)) 

für alle von dem Spektrogrammen der Form des Eingangsfeldes Then:

Wenn jedes Spektrogramm einzureihen beträgt 1000 Zeitschritte und K Messungen bei jedem Zeitschritt kann eine LSTM Schicht wie folgt aufgebaut sein sollte die Form (num_spectrograms, 1000, K) haben.