【问题标题】:How to model a shared layer in keras?如何在 keras 中建模共享层?
【发布时间】:2019-01-31 09:28:13
【问题描述】:

我想训练一个具有以下形式的共享层的模型:

x --> F(x)
          ==> G(F(x),F(y))
y --> F(y) 

xy 是两个独立的输入层,F 是共享层。 G 是连接F(x)F(y) 之后的最后一层。

是否可以在 Keras 中进行建模?怎么样?

【问题讨论】:

    标签: python machine-learning keras keras-layer


    【解决方案1】:

    您可以为此使用Keras functional API

    from keras.layers import Input, concatenate
    
    x = Input(shape=...)
    y = Input(shape=...)
    
    shared_layer = MySharedLayer(...)
    out_x = shared_layer(x)
    out_y = shared_layer(y)
    
    concat = concatenate([out_x, out_y])
    
    # pass concat to other layers ...
    

    请注意,xy 可以是任何层的输出张量,不一定是输入层。

    【讨论】:

    • 两个 out_x , out_y 使用相同的权重吗?
    • @Amirhessam 它们是具有相同权重的同一层的输出,尽管输入不同(即xy)。
    • 这里有必要使用concatenate操作吗?不能把out_x交给另一层吗?
    • @vampiretap 当然,您可以将out_x 提供给不同的层。在这里使用连接层是因为 OP 在他们的问题中明确提到了这一点:“G 是连接 F(x) 和 F(y) 之后的最后一层”。
    • 学习过程中会发生什么?是否有据可查?
    猜你喜欢
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 2021-11-12
    • 2021-07-28
    相关资源
    最近更新 更多