如何在Keras的一个模型中两次使用同一层/模型?

伊迪米

我正在尝试创建一个组合模型,该模型一次将两个不同的图像通过一个子模型(一个编码器)传递,然后污染这两个结果,并将它们提供给最终的子模型,然后根据这两个模型做出决定潜在表示。我想对两个图像使用相同的编码器以减少训练时间,因为如果我确实需要对图像进行编码,我肯定只需要一个编码器吗?(我应该注意图像是相似的)。

但是,在制作了编码器和最终子模型之后,我尝试使用以下代码制作最终的组合模型:

combinedModel = keras.Model(inputs=[encoder.input, encoder.input], outputs=finalSubModel)

Keras并不喜欢我两次使用相同的模型,这给了我以下错误:

ValueError: The list of inputs passed to the model is redundant. All inputs should only appear once. Found: [<tf.Tensor 'input_2:0' shape=(None, 32, 32, 1) dtype=float32>, <tf.Tensor 'input_2:0' shape=(None, 32, 32, 1) dtype=float32>]

是否可以在keras中在一个模型中一次使用同一子模型两次,还是必须为im使用的两种不同类别的图像使用单独的编码器?

苏斯米特·阿格劳瓦尔(Susmit Agrawal)

假设您具有使用以下功能构建的模型:

def make_encoder(h, w, c):
    inp = Input((h, w, c))
    x = SomeLayer()(inp)
    x = SomeLayer()(x)
    ....
    out = OutLayer()(x)
    return Model(inputs=[inp], outputs=[out])

现在,要创建组合模型,您需要Input为每个调用使用相同的编码器,并在不同的层上使用。要了解最后一行,请看以下内容:

def make_combined(h, w, c):
    inp1 = Input((h, w, c))
    inp2 = Input((h, w, c))
    encoder = make_encoder(h, w, c)

    encoded_1 = encoder(inp1)
    encoded_2 = encoder(inp2)

    # Concatenate the result
    encoded_out = Concatenate()([encoded_1, encoded_2])

    return Model(inputs=[inp1, inp2], outputs=[encoded_out])

注意,我正在使用两个不同的虚拟Input层为同一编码器提供单独的输入。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django如何在一个提交请求中两次保存相同的模型表单

来自分类Dev

Django如何在一个提交请求中两次保存相同的模型表单

来自分类Dev

将来自Keras模型的预测用作另一个Keras模型中的一层

来自分类Dev

如何在SQL中的一个公共列中以不同的条件两次使用同一列

来自分类Dev

如何使用预训练模型的第一层来提取Keras模型中的特征(功能性API)

来自分类Dev

CarrierWave在单个模型中两次使用一个上传器

来自分类Dev

对同一模型使用 ASP-FOR 两次

来自分类Dev

将相同模型两次链接到CakePhp中的另一个模型

来自分类Dev

将相同模型两次链接到CakePhp中的另一个模型

来自分类Dev

React:如何在同一页面中两次使用相同的组件,但只为一次加载一个脚本标签

来自分类Dev

如何将两个keras模型连接到一个模型中?

来自分类Dev

实体框架核心:如何在一个实体中使用同一表中的两个一对多关系配置模型

来自分类Dev

如何在一个活动中两次使用 onActivityResult

来自分类Dev

通过不同的名称两次关联同一模型

来自分类Dev

Rails将一个模型添加到另一个模型两次

来自分类Dev

如何在mysql中两次在1个表中选择同一列

来自分类Dev

在第一个模型的相同第一层中使用权重训练第二个模型

来自分类Dev

has_many在同一模型中使用两次

来自分类Dev

是否想在同一视图上使用不同类型两次使用同一模型?

来自分类Dev

如何在“过滤器”功能中按同一层次结构中的多个项目过滤度量

来自分类Dev

如何在Java中检查对象列表是否在同一层次结构中

来自分类Dev

如何在“过滤器”功能中按同一层次结构中的多个项目过滤度量

来自分类Dev

实体框架核心:如何在引用同一张表的一个实体中使用两个一对多关系配置模型

来自分类Dev

如何删除盗版模型的最后一层

来自分类Dev

如何在同一行自举模型中强制两个元素对齐

来自分类Dev

如何在Django中添加同一模型的两个不同的整数字段

来自分类Dev

如何在同一视图中使用两个单独的模型

来自分类Dev

如何在Linux命令中两次引用前一个命令的输出?

来自分类Dev

如何在一个管道中给文件加注两次

Related 相关文章

  1. 1

    Django如何在一个提交请求中两次保存相同的模型表单

  2. 2

    Django如何在一个提交请求中两次保存相同的模型表单

  3. 3

    将来自Keras模型的预测用作另一个Keras模型中的一层

  4. 4

    如何在SQL中的一个公共列中以不同的条件两次使用同一列

  5. 5

    如何使用预训练模型的第一层来提取Keras模型中的特征(功能性API)

  6. 6

    CarrierWave在单个模型中两次使用一个上传器

  7. 7

    对同一模型使用 ASP-FOR 两次

  8. 8

    将相同模型两次链接到CakePhp中的另一个模型

  9. 9

    将相同模型两次链接到CakePhp中的另一个模型

  10. 10

    React:如何在同一页面中两次使用相同的组件,但只为一次加载一个脚本标签

  11. 11

    如何将两个keras模型连接到一个模型中?

  12. 12

    实体框架核心:如何在一个实体中使用同一表中的两个一对多关系配置模型

  13. 13

    如何在一个活动中两次使用 onActivityResult

  14. 14

    通过不同的名称两次关联同一模型

  15. 15

    Rails将一个模型添加到另一个模型两次

  16. 16

    如何在mysql中两次在1个表中选择同一列

  17. 17

    在第一个模型的相同第一层中使用权重训练第二个模型

  18. 18

    has_many在同一模型中使用两次

  19. 19

    是否想在同一视图上使用不同类型两次使用同一模型?

  20. 20

    如何在“过滤器”功能中按同一层次结构中的多个项目过滤度量

  21. 21

    如何在Java中检查对象列表是否在同一层次结构中

  22. 22

    如何在“过滤器”功能中按同一层次结构中的多个项目过滤度量

  23. 23

    实体框架核心:如何在引用同一张表的一个实体中使用两个一对多关系配置模型

  24. 24

    如何删除盗版模型的最后一层

  25. 25

    如何在同一行自举模型中强制两个元素对齐

  26. 26

    如何在Django中添加同一模型的两个不同的整数字段

  27. 27

    如何在同一视图中使用两个单独的模型

  28. 28

    如何在Linux命令中两次引用前一个命令的输出?

  29. 29

    如何在一个管道中给文件加注两次

热门标签

归档