我正在尝试在Keras(Deepmind Paper)中使用Google Deepminds CGQN网络的一部分。根据它们向网络提供多少输入图像,网络可以了解有关其试图预测的3D环境的更多信息。这是他们的网络方案:
我还想像使用M θ网络一样使用多个输入“图像”。所以我的问题是:使用Keras,我如何才能重用网络的一部分,然后对其产生的所有输出求和,将其用作网络下一部分的输入?
提前谢谢!
答案 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在时间范围内应用给定的图层,在我们的情况下,这意味着它适用于每张图像,并且您将获得每张图像的输出。上面链接的文档中还有更多示例,您可以实现一组共享的图层/子模型,然后将其应用于每个图像并获取减少的总和。