Keras中Conv2D的输入错误

2024-05-16 11:51:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试学习使用python中的深度学习来分析EEG数据。不幸的是,我对python还不熟悉,所以我试图找到最简单的可用工具。这让我找到了凯拉斯。在

更确切地说,我正在尝试实现以下管线:

EEG analysis net from https://arxiv.org/abs/1610.01683

到目前为止,我似乎被困在“S1”或“C2”上。目前的想法是:

  • EEG数据的输入部分(目前我将使用1 x 6000)

  • 通过20个1D过滤器(1x200)进行测试。

  • 使用pool 20,step10对每个过滤器的输出进行最大池化(产生20个1x578数据点)
  • 一个578 x 20的矩阵
  • 通过一个内核大小为20 x 30的二维卷积来运行这个

但是,下面的代码给出了以下错误:

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'))

输出:

^{pr2}$

我确信这是一个很小的错误,但是查阅keras文档并没有让我更明智。在

我意识到上面的操作跳过了“堆叠”过程,但我能找到的最接近的东西就是连接,这只是抱怨我没有给它任何输入。在

我使用的是ano 0.9.0.dev和keras2.0.2


Tags: 工具数据add过滤器sizemodel错误activation
1条回答
网友
1楼 · 发布于 2024-05-16 11:51:33

在从1D转换为2D之前,您需要对数据进行整形。Keras中有dedicated layer。我想,你的模型可能是这样开始的:

model = Sequential()
model.add(Conv1D(input_shape=(6000,1),kernel_size=200,strides=1,
             activation='sigmoid',filters=20))
model.add(MaxPooling1D(pool_size=20, strides=10,padding='same'))
model.add(Reshape((-1, 581, 20)))
model.add(Conv2D(filters=400,kernel_size=(20,30),strides=(1,1), 
             activation='sigmoid'))

我还将input_shape替换为默认维度顺序。在

相关问题 更多 >