Keras CNN 参数太少
Keras CNN too few parameters
我正在尝试在 keras 中使用 3 个输入和 sigmoid 激活函数重新创建以下教程 CNN:
所以参数的数量应该是 7(假设 1 个大小为 2 的过滤器在 2 个位置(前 2 个输入或 2 个较低的输入)上卷积),2 个共享权重(在突触上显示为 1.0)并且没有在 conv1d 层中填充)。当我在 Keras 中编写以下内容时:
我在检查时只得到5个参数model.summary()
:
我需要做什么才能获得正确数量的参数?由于我是 Keras 的新手,我的代码中可能有几处错误。
所有卷积参数在空间上共享(在一维的情况下,这意味着整个输入序列)。准确地说,长度为 2
的卷积滤波器两次应用于输入 (x[0], x[1])
和 (x[1], x[2])
,但在这两种情况下它是相同的滤波器,相应地可训练参数也相同。
这解释了您现在得到的模型的大小:Conv1D
有 3 个参数(权重 (2)
和偏差 (1)
),密集层有 2 个参数,因为Conv1D
的输出是 (?, 2, 1)
.
最后,我无法对您要实施的网络发表评论。可能他们的意思是 2 个过滤器(但层将有 6 个参数)...但我不知道任何实现,其中卷积层为每个补丁都有单独的参数。
我正在尝试在 keras 中使用 3 个输入和 sigmoid 激活函数重新创建以下教程 CNN:
所以参数的数量应该是 7(假设 1 个大小为 2 的过滤器在 2 个位置(前 2 个输入或 2 个较低的输入)上卷积),2 个共享权重(在突触上显示为 1.0)并且没有在 conv1d 层中填充)。当我在 Keras 中编写以下内容时:
我在检查时只得到5个参数model.summary()
:
我需要做什么才能获得正确数量的参数?由于我是 Keras 的新手,我的代码中可能有几处错误。
所有卷积参数在空间上共享(在一维的情况下,这意味着整个输入序列)。准确地说,长度为 2
的卷积滤波器两次应用于输入 (x[0], x[1])
和 (x[1], x[2])
,但在这两种情况下它是相同的滤波器,相应地可训练参数也相同。
这解释了您现在得到的模型的大小:Conv1D
有 3 个参数(权重 (2)
和偏差 (1)
),密集层有 2 个参数,因为Conv1D
的输出是 (?, 2, 1)
.
最后,我无法对您要实施的网络发表评论。可能他们的意思是 2 个过滤器(但层将有 6 个参数)...但我不知道任何实现,其中卷积层为每个补丁都有单独的参数。