试图确定如何在 KERAS 中进行 3D 深度可分离卷积。 KERAS 的当前实现有一个名为 SeperableConv2D 的 2D 版本,我正在尝试开发一个 2D 版本来首先模仿它,以便我确定我所做的是正确的。
这是为了实现 Xception Net 架构。
虽然背景阅读我首先需要一个深度卷积,然后是一个点卷积来组合这些步骤。为此,我使用以下代码:
def depth_wise_convolution(x, in_channels, filters, kernel_size, strides=1):
x = layers.Conv2D(filters=in_channels,
kernel_size=kernel_size,
strides=strides,
padding="same",
groups=in_channels,
use_bias = False)(x)
x = layers.Conv2D(filters=filters,kernel_size=1)(x)
return x
两者都没有产生错误,但 KERAS 实现有 22,855,376 个参数,而我的方法有 22,880,408 个参数。关于我做错了什么的任何想法?
网络相关部分的Netron可视化如下图所示。 KERAS_Implementation My_Implementation