【发布时间】:2017-08-12 15:33:59
【问题描述】:
这里是使用 Keras 添加的卷积层的典型示例
conv_model.add(Convolution2D(filters, kernel_size[0]
, kernel_size[1], input_shape=(1, 28, 28)))
这里的过滤器基本上是层所拥有的内核数量。我的问题很简单。 Keras 如何决定它必须放入的内核类型,比如高斯内核? (使用 TensorFlow 后端)
【问题讨论】:
-
一旦给定内核初始化器,过滤器就会被初始化,但随着实际过滤器值的学习,值会发生变化。你问的是这个吗?
-
您是想说过滤器值首先像普通神经网络中的权重一样随机初始化,然后随着时间的推移而学习?
-
没错,就是这样。
-
我相信 OP 被“内核”这个词弄糊涂了,这个词在 ML 中有几十个含义。 “高斯内核”的建议看起来像 OP 将内核称为希尔伯特空间中的点积(如在 SVM 中),这是正确的理解@Tanmay 吗?如果是这样,convnet 中的“内核”与这个概念无关,它只是一个“命名冲突”,在 CNN 中,“内核”是一个与信号进行卷积的矩阵,它(正如 Matias 建议的那样)完全可学习的、端到端的,因此没有内核“类型”,从某种意义上说,它始终是“线性的”。
-
是的,我说的是我们用于卷积矩阵的内核。所以矩阵是随机初始化的,然后随着时代的发展而学习?
标签: python-3.x tensorflow keras conv-neural-network