Python 在Keras中,如何首先通过conv网络,然后通过循环网络传递一对图像?

Python 在Keras中,如何首先通过conv网络,然后通过循环网络传递一对图像?,python,machine-learning,keras,conv-neural-network,recurrent-neural-network,Python,Machine Learning,Keras,Conv Neural Network,Recurrent Neural Network,我想用卷积网络和循环网络来比较两幅图像。首先,我想通过一些类似VGG的堆栈传递我的第一个图像,然后将其馈送到第一个RNN输入中。然后,第二个图像应通过相同的VGG,然后进入RNN的第二个输入 如何使用Keras实现此拓扑 在处理第二幅图像时,递归网络应该记住第一幅图像 更新 假设我有两个输入: input1 = layers.Input(...) input2 = layers.Input(...) 目前我有两个VGG分支 x1 = vgg_stack(...)(x1) x2 = vgg_st

我想用卷积网络和循环网络来比较两幅图像。首先,我想通过一些类似VGG的堆栈传递我的第一个图像,然后将其馈送到第一个RNN输入中。然后,第二个图像应通过相同的VGG,然后进入RNN的第二个输入

如何使用Keras实现此拓扑

在处理第二幅图像时,递归网络应该记住第一幅图像

更新

假设我有两个输入:

input1 = layers.Input(...)
input2 = layers.Input(...)
目前我有两个VGG分支

x1 = vgg_stack(...)(x1)
x2 = vgg_stack(...)(x2)

x = layers.concatenate([x1, x2])

x = final_MLP(...)(x)

如何将其替换为应用于两个输入的Single
vgg\U堆栈,然后将这些结果传递给
RNN

您应该尝试使用时间分布包装器。你可以找到

它基本上将批处理后的第一个维度作为“时间维度”,并将您提供的层(或模型?)作为参数应用于每个时间步骤。所以像这样使用它:

from keras.layers import TimeDistributed

input_layer = Input((num_of_images, image_dims...))
# m_cnn is your VGG like model, taking one image as input.
layer1 = TimeDistributed(m_cnn)(input_layer)
layer2 = YourRNNLayer(...)(layer1)

我希望这对你有意义:)

我不明白对不起。我有两个输入:
input1
input2
。下一步怎么办?如果不是