根据输入数量重复Keras模型的一部分

时间:2018-08-31 11:32:31

标签: keras

我正在尝试在Keras(Deepmind Paper)中使用Google Deepminds CGQN网络的一部分。根据它们向网络提供多少输入图像,网络可以了解有关其试图预测的3D环境的更多信息。这是他们的网络方案:

CGQN network scheme

我还想像使用M θ网络一样使用多个输入“图像”。所以我的问题是:使用Keras,我如何才能重用网络的一部分,然后对其产生的所有输出求和,将其用作网络下一部分的输入?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用functional API来实现这一点,在这里我仅提供概念验证:

images_in = Input(shape=(None, 32, 32, 3)) # Some number of 32x32 colour images
# think of it as a video, a sequence of images for example
shared_conv = Conv2D(32, 2, ...) # some shared layer that you want to apply to every image
features = TimeDistributed(shared_conv)(images_in) # applies shared_conv to every image

这里TimeDistributed在时间范围内应用给定的图层,在我们的情况下,这意味着它适用于每张图像,并且您将获得每张图像的输出。上面链接的文档中还有更多示例,您可以实现一组共享的图层/子模型,然后将其应用于每个图像并获取减少的总和。