我对keras很新。我想知道是否有人可以帮助我如何使用我的EEG数据来提供LSTM。我从306通道进行了1400次试验,长度为600分。
1-我想创建一个LSTM网络,在每个时间步t,第一层接收所有通道的输入(所有EEG通道最初被送入同一个LSTM层)
2-并且另一个网络由几个306 LSTM组成,每个LSTM在第一层仅连接到一个输入通道,然后第二个编码层 通过接收连接作为输入来执行信道间分析 所有通道LSTM的输出向量。
由于
答案 0 :(得分:2)
如果我理解正确,代码应该是这样的:
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)