2017-05-19 5 views
1

Je suis très nouveau à keras. Je me demande si quelqu'un pourrait m'aider à alimenter un LSTM avec mes données qui sont EEG. J'ai 1400 essais de 306 canaux avec une longueur de 600 points.nourrir LSTM en keras

1- Je veux créer un réseau de LSTM que, à chaque instant t pas de temps, la première couche prend l'entrée de tous les canaux (tous les canaux d'EEG sont d'abord introduits dans la même couche de LSTM)

2- et un autre réseau est constitué de 306 LSTM, chacun connecté à un seul canal d'entrée de la première couche, et la seconde couche de codage effectue une analyse inter-canaux, en recevant en entrée les vecteurs de sortie concaténés de tous les canaux LSTM.

Merci

Répondre

1

Si je comprends bien, le code doit être quelque chose comme:

def lstm_model(): 
    hidden_units = 512 # may increase/decrease depending on capacity needed 
    timesteps = 600 
    input_dim = 306 
    num_classes = 10 # num of classes for ecg output 
    model = Sequential() 
    model.add(LSTM(hidden_units, input_shape=(timesteps, input_dim))) 
    model.add(Dense(num_classes)) 
    adam = Adam(lr=0.001) 
    model.compile(loss='categorical_crossentropy', optimizer=adam, metrics=['accuracy']) 
    return model 

def train(): 
    xt = np.array([]) # input_data shape = (num_trials, timesteps, input_dim) 
    yt = np.array([]) # out_data shape = (num_trials, num_classes) 
    batch_size = 16 
    epochs = 10 
    model = lstm_model() 
    model.fit(xt, yt, epochs=epochs, batch_size=batch_size, shuffle=True) 
+0

Merci beaucoup pour votre aide :) –