gpt4 book ai didi

python - 与 Tensorflow 2.0 同一层的不同尺寸过滤器

转载 作者:行者123 更新时间:2023-11-30 09:41:58 25 4
gpt4 key购买 nike

我正在 Udemy 上学习关于 Tensorflow 2.0 的类(class),并将其应用到图像数据集。无论如何 - 类代码库中的典型卷积层如下所示:

model.add(tf.keras.layers.Conv2D(filters=32, kernel_size=3, padding="same", activation="relu"))

是否可以在同一层中添加多个过滤器,例如大小:kernel_size=2kernel_size=3kernel_size=4kernel_size=5

请注意,我想知道在 TF2.0 中这是如何完成的

编辑:我不将问题限制为仅 conv2d 层。

最佳答案

根据documentation中提到的Conv2D层的内核大小参数的描述您不能添加具有不同内核大小或步幅的多个过滤器。

此外,具有不同大小的内核的卷积将产生不同高度和宽度的输出。假设对称内核的输出大小的一般公式由下式给出:

(X−K+2P)/S+1

  • 其中 X 是输入的高度/宽度
  • K 是内核大小
  • P 是零填充
  • S 是步幅

因此,假设您保持零填充和步幅相同,则 Conv2D 层中不能有多个不同大小的内核。

但是,您可以使用 tf.keras.Model API 在同一输入上多次使用 Conv2D,然后在堆叠之前裁剪或使用零填充来匹配不同输出的尺寸。

例如。

inputs = tf.keras.Input(shape=(H,W,))
x1 = tf.keras.layers.Conv2D(filters=32, kernel_size=3)(inputs)
x2 = tf.keras.layers.Conv2D(filters=16, kernel_size=5)(inputs)
#match dimensions (height and width) of x1 or x2 here
x3 = tf.keras.layers.Concatenate(axis=-1)[x1,x2]

使用 Zeropadding2DCropping2D用于匹配尺寸。

关于python - 与 Tensorflow 2.0 同一层的不同尺寸过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57438922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com