首页 > 解决方案 > 重复部分 Keras 模型,取决于输入的数量

问题描述

我正在尝试在 Keras(Deepmind 论文)中使用 Google Deepminds CGQN 网络的一部分。根据他们提供给网络的输入图像的数量,网络会更多地了解它试图预测的 3D 环境。这是他们的网络方案:

CGQN网络方案

我还想像使用 M θ网络一样使用多个输入“图像” 。所以我的问题是:使用 Keras,我怎样才能重复使用网络的一部分任意次数,然后将它生成的所有输出相加,这些输出将用作网络下一部分的输入?

提前致谢!

标签: keras

解决方案


您可以使用功能 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在时间维度上应用给定层,在我们的例子中,这意味着它适用于每个图像,您将获得每个图像的输出。上面链接的文档中有更多示例,您可以实现一组共享的层/子模型,然后将其应用于每个图像并获取减少的总和。


推荐阅读