Machine learning Keras CNN参数太少

Machine learning Keras CNN参数太少,machine-learning,neural-network,keras,keras-layer,convolutional-neural-network,Machine Learning,Neural Network,Keras,Keras Layer,Convolutional Neural Network,我试图用3个输入和keras中的sigmoid激活函数重新创建以下教程CNN: 因此,参数的数量应为7(假设1个大小为2的过滤器在2个位置上卷积(顶部2个输入或2个较低的输入),2个共享权重(在突触上显示为1.0),conv1d层中没有填充)。当我用Keras写下以下内容时: 当我在model.summary()中检查它时,我只得到5个参数: 我需要做什么才能获得正确数量的参数?由于我是Keras的新手,我的代码中可能有几处错误。所有卷积参数都是在空间上共享的(在1D的情况下,这意味着整个

我试图用3个输入和keras中的sigmoid激活函数重新创建以下教程CNN:

因此,参数的数量应为7(假设1个大小为2的过滤器在2个位置上卷积(顶部2个输入或2个较低的输入),2个共享权重(在突触上显示为1.0),conv1d层中没有填充)。当我用Keras写下以下内容时:

当我在
model.summary()中检查它时,我只得到5个参数:


我需要做什么才能获得正确数量的参数?由于我是Keras的新手,我的代码中可能有几处错误。

所有卷积参数都是在空间上共享的(在1D的情况下,这意味着整个输入序列)。精确地说,长度
2
的卷积滤波器两次应用于输入
(x[0],x[1])
(x[1],x[2])
,但在这两种情况下都是相同的滤波器,相应地,可训练参数也相同

这解释了您现在得到的模型的大小:
Conv1D
有3个参数(权重
(2)
和偏差
(1)
),密集层有2个参数,因为
Conv1D
的输出是
(?,2,1)


最后,我不能评论你试图实现的网络。它们可能意味着2个过滤器(但该层将有6个参数)。。。但我不知道有任何实现,其中卷积层对每个补丁都有单独的参数。

请不要将代码作为图片发布。好的,谢谢!这是我的画,我现在意识到conv1d层应该只有一个偏置突触,在文献中仔细检查了它。我仍然不明白为什么稠密层中有2个而不是3个参数:有2个conv1d输出,但也必须训练的偏差又如何?哦,一个修正:稠密层包括偏差-它有1个权重和1个偏差。但是,这种布线并不传统,因为通常密集层的输入具有秩2,这意味着
(?,2,1)
应该通过展平来重塑为
(?,2)
。我以为keras会自动完成,但它不会,所以你必须自己添加
Flatten
层。这将导致致密层中的3个参数,总计6个。