Tensorflow CNN和LSTM用于Keras中的图像字幕

Tensorflow CNN和LSTM用于Keras中的图像字幕,tensorflow,keras,deep-learning,lstm,cnn,Tensorflow,Keras,Deep Learning,Lstm,Cnn,我想在Keras中实现以下架构,用于图像字幕,但在将CNN的输出连接到LSTM的输入时,我面临很多困难 重要的是使用CNN的输出作为LSTM的输入。如下图所示。 我可以单独制作LSTM或CNN,但我不知道如何构建这种结构。 图像必须转换为特征描述CNN并输入到LSTM,而矢量表示中标题的文字则从另一种方式插入LSTM单元格。这样,第一个单元负责产生第一个字,以此类推。我认为CNN和LSTM必须同时接受培训 顺便说一下,这不是学校的家庭作业:) 提前感谢您的帮助。我假设您熟悉Tensorflo

我想在Keras中实现以下架构,用于图像字幕,但在将CNN的输出连接到LSTM的输入时,我面临很多困难

重要的是使用CNN的输出作为LSTM的输入。如下图所示。

我可以单独制作LSTM或CNN,但我不知道如何构建这种结构。 图像必须转换为特征描述CNN并输入到LSTM,而矢量表示中标题的文字则从另一种方式插入LSTM单元格。这样,第一个单元负责产生第一个字,以此类推。我认为CNN和LSTM必须同时接受培训

顺便说一下,这不是学校的家庭作业:)


提前感谢您的帮助。

我假设您熟悉Tensorflow Keras API。我将用以下方式实现代码

假设:
语音大小=4000
输入图像大小=(572572,3)

这里最重要的部分是将输出从
4维
调整为
3维
。由于
LSTM
需要在
3维中输入

reshape = layers.Reshape((64, 4096))(fc2)
下面的代码可以工作,您应该能够使用它。
我希望答案对您有用。

谢谢您的回复。我想这就是我要找的。只有一件事。如何将图像和文字分别插入LSTM?我的意思是,如何定义单词应该输入到每个单元格中的位置,以及Conv的结果如何成为第一个LSTM单元格的输入?再次感谢您,我期待着您的回复。您必须使用fit API。只需使用此选项提供您的
x
图像和
y
句子即可。要了解此类模型的培训是如何工作的,请参阅以下文章。上面提供的解决方案实现了您希望的确切结构。谢谢。我已经看到了你给我的链接,但我想我有一个问题,知道标签和图像之间的区别是这样做的
reshape = layers.Reshape((64, 4096))(fc2)