我正在尝试使用python中的深度学习来分析EEG数据。不幸的是,我也是python的新手,所以试图找到最简单的工具。这导致我去了Keras。
更确切地说,我正在尝试实现以下管道:
到目前为止,我似乎被困在“S1”或“C2”附近。到目前为止的想法是:
输入EEG数据部分(我现在将使用1 x 6000)
通过20个1D过滤器(1x200)运行它
使用池20,步幅10(产生20个1x578数据点)对每个过滤器的输出进行最大池化
将其“堆叠”成20 x 578矩阵
通过内核大小为20 x 30的2D卷积运行
但是,下面的代码给出了以下错误:
model = Sequential()
model.add(Conv1D(input_shape=(1,6000), kernel_size=200,strides=1,
activation='sigmoid',filters=20))
model.add(MaxPooling1D(pool_size=20, strides=10,padding='same'))
model.add(Conv2D(filters=400,kernel_size=(20,30),strides=(1,1),activation='sigmoid'))
输出:
ValueError: Input 0 is incompatible with layer conv2d_4: expected ndim=4, found ndim=3
我确信这是一个微不足道的错误,但通过keras文档并没有让我更聪明。
我意识到上面跳过了“堆叠”程序,但我能找到的最接近的东西是Concatenate,而且只是抱怨我没有给它任何输入。
我正在使用theano 0.9.0.dev和keras 2.0.2