首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras函数API:将CNN模型与RNN相结合,以查看图像序列

Keras函数API:将CNN模型与RNN相结合,以查看图像序列
EN

Stack Overflow用户
提问于 2018-11-27 04:44:54
回答 1查看 7.6K关注 0票数 9

因此,我遇到了一个问题,即如何在Keras中将CNN与RNN结合起来。在发布问题时,有人指出这是解决问题的正确方法。显然,我只是忽略了原始代码中的一些东西,这让我回答了自己的问题。

原来的问题是:

如何在Keras中创建一个模型,该模型以图像序列作为输入,CNN‘查看’每个单独的图像,并将CNN输出的序列输入到RNN中?

更清楚地说:

模型一:一个只看单个图像的CNN。

模型二:在模型一的CNN输出序列上的RNN。

因此,例如,CNN应该看到5个图像,来自CNN的5个输出的序列应该传递到RNN。

输入数据格式如下:

(number_of_images,宽度,高度,通道)= (4000,120,60,1)

EN

回答 1

Stack Overflow用户

发布于 2018-11-27 05:36:27

这个问题的答案如下。

以这个过于简化的CNN模型为例:

代码语言:javascript
复制
cnn = Sequential()
cnn.add(Conv2D(16, (50, 50), input_shape=(120, 60, 1)))

cnn.add(Conv2D(16, (40, 40)))

cnn.add(Flatten()) # Not sure if this if the proper way to do this.

然后是这个简单的RNN模型:

代码语言:javascript
复制
rnn = Sequential()

rnn = GRU(64, return_sequences=False, input_shape=(120, 60))

它应该连接到密集网络:

代码语言:javascript
复制
dense = Sequential()
dense.add(Dense(128))
dense.add(Dense(64))

dense.add(Dense(1)) # Model output

请注意,出于可读性的考虑,激活函数等已被省略。

现在剩下的就是组合这3个主要模型了。

代码语言:javascript
复制
main_input = Input(shape=(5, 120, 60, 1)) # Data has been reshaped to (800, 5, 120, 60, 1)

model = TimeDistributed(cnn)(main_input) # this should make the cnn 'run' 5 times?
model = rnn(model) # combine timedistributed cnn with rnn
model = dense(model) # add dense

然后最后

代码语言:javascript
复制
final_model = Model(inputs=main_input, outputs=model)

final_model.compile...
final_model.fit...
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53488768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档