增加keras模型输出,并将其作为第二个模型的输入

增加keras模型输出,并将其作为第二个模型的输入,keras,deep-learning,Keras,Deep Learning,我试图训练一个级联模型,在这里我想获取模型1的输出,对其进行扩充,并将其输入到第二个模型中。 如果可能的话,我想对这两个网络进行端到端的培训 现在我想知道这在Keras是否可行 谢谢你的建议 干杯 M只要您自己执行增强(而不是在生成器中),它是可行的 您可以探索Lambda层中的各种自定义函数,并使用这些函数进行扩展。您可以使用来自后端框架(Tensorflow、Theano、CNTK)的任何函数,也可以使用来自后端框架(Tensorflow、Theano、CNTK)的任何函数 如果您的后端是T

我试图训练一个级联模型,在这里我想获取模型1的输出,对其进行扩充,并将其输入到第二个模型中。 如果可能的话,我想对这两个网络进行端到端的培训

现在我想知道这在Keras是否可行

谢谢你的建议

干杯


M

只要您自己执行增强(而不是在生成器中),它是可行的

您可以探索
Lambda
层中的各种自定义函数,并使用这些函数进行扩展。您可以使用来自后端框架(Tensorflow、Theano、CNTK)的任何函数,也可以使用来自后端框架(Tensorflow、Theano、CNTK)的任何函数

如果您的后端是Tensorflow,则有许多功能可用

您可以将其构建为单个网络,也可以以任意方式将两个网络连接起来

单个网络的示例:

inputs = Input(...)
out = SomeLayer(...)(inputs)
out = SomeLayer(...)(out)

...

out = Lambda(someAugmentFunctionYouDefine)(out)

...

out = SomeLayer(...)(out)

...

model = Model(inputs, out)
也适用于顺序模型


其他选项(例如启用“渴望”模式的自定义训练循环,使用不属于后端的函数)会破坏反向传播,我认为您不会喜欢这样

您可以使用函数式API轻松实现这一点。它允许你有多个层次的端点。完美的丹尼尔,这正是我想要的!非常感谢:-)