【问题标题】:Creating custom Conv2D layer in Keras with several hard-coded filters?使用几个硬编码过滤器在 Keras 中创建自定义 Conv2D 层?
【发布时间】:2021-02-02 04:17:20
【问题描述】:

我正在尝试创建一个自定义Conv2D层与几个(最多数千)不同 硬编码 过滤器。

在做了一些研究之后,我知道我可以:

  1. Conv2D 中使用kerel_initializer 参数(参考here
  2. 写我自己的Conv2D

我的问题是,您似乎只能使用kernel-initializer 对一个过滤器进行硬编码?所以如果我使用第一种方法,我将不得不添加几个Conv2D 层和filter=1

但是,除了自定义过滤器和不可训练之外,我希望其他一切都像另一个 Conv2D 层一样工作,所以只实现另一个似乎有点蹩脚。

这可以用任何简单的方法实现吗?还是我别无选择,只能实现自己的Conv2D?提前致谢。

【问题讨论】:

  • 是什么让您认为您只能硬编码一个过滤器?您可以使用您选择的输出形状(任意数量的过滤器)编写自定义内核初始化程序。您需要为您的过滤器编写一个生成器,并在内核初始化程序中调用它。
  • @IvanK。我发现我误解了 api,你肯定可以使用 kernel_initializer 对多个过滤器进行硬编码。感谢您的提醒:)

标签: python tensorflow keras conv-neural-network


【解决方案1】:

tf.nn.conv2d 将过滤器作为图层的输入参数:

tf.nn.conv2d(
    input, filters, strides, padding, data_format='NHWC', dilations=None,
    name=None
)

【讨论】:

    猜你喜欢
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多