【发布时间】:2019-08-16 15:02:20
【问题描述】:
我正在构建一个带有 Conv1D 层的 CNN,它训练得很好。我现在正在研究如何在将特征输入模型末尾的密集层之前减少特征的数量,所以我一直在减小密集层的大小,但后来我遇到了this article。文章讨论了使用带有 kernel_size=(1,1) 的 Conv2D 过滤器来减少特征数量的效果。
我想知道使用具有 kernel_size=(1,1) tf.keras.layers.Conv2D(filters=n,kernel_size=(1,1)) 的 Conv2D 层和使用相同大小的 Dense 层 tf.keras.layers.Dense(units=n) 之间有什么区别?从我的角度来看(我对神经网络比较陌生), kernel_size=(1,1) 的过滤器是一个单一的数字,它本质上相当于 Dense 层中的权重,并且两个层都有偏差,所以它们是等价的,还是我误解了什么?如果我的理解是正确的,在我使用 Conv1D 层而不是 Conv2D 层的情况下,这会改变什么吗?如tf.keras.layers.Conv1D(filters=n, kernel_size=1) 等同于tf.keras.layers.Dense(units=n)?
如果您需要我的任何东西来澄清问题,请告诉我。我很好奇 kernel_size=1 的 Conv1D 层和 kernel_size=(1,1) 的 Conv2D 层的行为是否与 Dense 层不同。
【问题讨论】:
标签: tensorflow keras neural-network conv-neural-network tf.keras