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