两个Keras层之间的自定义(卷积)连接

Stefanhgm

我正在寻找一种定义两个Keras层之间的自定义互连的可能性。我想用自定义和数量不等的输入来模仿卷积行为。下面简化的示例如下所示,说明了我的需求。输入0、1和2必须合并为一个单元。输入3应单独考虑,并且4和5也应合并。在此示例中,输入组(0、1、2),(3)和(4、5)始终组合在一个神经元中。进一步的步骤将是几个神经元的组合(例如,将输入0、1和2输入到两个隐藏层神经元中)。

       X        Output layer
    /  |  \
  X    X   X    Hidden layer
 /|\   |  / \
X X X  X  X X   Input layer
0 1 2  3  4 5

在Keras文档中,我没有找到解决此问题的简单方法,或者我在找错地方。卷积层始终期望输入值固定。对我来说,这个问题似乎并不复杂。我没有提供任何代码,因为还没有值得共享的东西。但是,当我找到一个可行的解决方案时,我将用代码更新问题。

也许这个问题有一些背景。我将分类值拆分为热向量。例如,具有三个表现形式'a','b','c'的分类值分别为(1、0、0),(0、1、0)和(0、0、1)。这些与其他值一起被馈入神经网络。导致输入到上述示例网络的输入(1、0、0,X,X,X),(0、1、0,X,X,X)和(0、0、1,X,X,X) (X为任意值)。当我现在拥有一个完全连接的层时,网络会松散以下信息,即输入0、1和2实际上来自同一变量,应该一起考虑。对于上述架构,我想确保在将它们与其他变量关联之前,网络将它们一起考虑。我希望这是有道理的,否则请告诉我原因。

更新:答案提供了一个很好的代码示例。

莱奥格

您正在寻找的是Keras functional API

您可以为网络定义三个输入,然后根据需要在此之上构建模型。

from keras.layers import Input, Dense, Conv1D, Concatenate
x = Input(shape=(None, 3))
y = Input(shape=(None, 1))
z = Input(shape=(None, 2))
conv_x = Conv1D(...)(x)
conv_y = Conv1D(...)(y)
conv_z = Conv1D(...)(z)
conv = Concatenate(axis=-1)([conv_x, conv_y, conv_z])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在两个不同的keras层之间创建自定义(卷积)连接

层之间的自定义连接Keras

如何在Keras中创建自定义卷积层

Keras 自定义合并两个张量

两个视图之间的自定义循环过渡

Core ML上具有两个参数功能的自定义层

来自两个输入源的自定义Tensorflow层

如何创建可以传递两个输入和 tf.matmul 的自定义层

在Keras中实现自定义卷积层-加载模型时出错

自定义卷积和keras自定义层中的无类型对象用于门操作

在Keras中的两个密集层之间共享权重

如何在两个 keras 层之间共享权重?

如何计算定义自定义财务日历的两个日期之间的月数?

Keras自定义指标具有两个以上的输入

在Caffe Windows CPP中自定义卷积层

CriteriaBuilder连接两个具有自定义条件的表

以自定义大小的间隔和聚合函数连接两个熊猫数据框

无法使用自定义信号连接两个帧

两个视图之间的自定义绘制线无法正常工作

如何获得两个自定义树之间的差异?

两个日期之间的自定义过滤器AngularJS

如何在两个@click.option() 之间打印自定义消息?

angularjs在两个模板之间共享自定义指令

Big Query Compute 两个自定义事件之间的平均时间

如何在两个 React 自定义 Hook 之间拥有共同的状态?

SQL-创建两个日期之间的自定义日期列表

在TableLayout Android中的两个元素之间绘制自定义线

如何根据状态变化在两个自定义视图之间进行转换?

在两个NodeJS微服务之间共享自定义代码