gpt4 book ai didi

tensorflow - 在 Keras 中使用 RNN 和 CNN

转载 作者:行者123 更新时间:2023-12-04 09:42:12 24 4
gpt4 key购买 nike

初学者问题

使用 Keras,我有一个顺序 CNN 模型,它根据图像(输入)预测大小为 [3*1](回归)的输出。

如何实现 RNN 以便将模型的输出作为第二个输入添加到下一步。(所以我们有 2 个输入:图像和前一个序列的输出)?

model = models.Sequential()
model.add(layers.Conv2D(64, (3, 3), activation='relu', input_shape=X.shape[1:]))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(3, activation='linear'))

最佳答案

我发现的最简单的方法是直接扩展 Model。以下代码将在 TF 2.0 中运行,但在旧版本中可能无法运行:

class RecurrentModel(Model):
def __init__(self, num_timesteps, *args, **kwargs):
self.num_timesteps = num_timesteps
super().__init__(*args, **kwargs)

def build(self, input_shape):
inputs = layers.Input((None, None, input_shape[-1]))
x = layers.Conv2D(64, (3, 3), activation='relu'))(inputs)
x = layers.MaxPooling2D((2, 2))(x)
x = layers.Flatten()(x)
x = layers.Dense(3, activation='linear')(x)
self.model = Model(inputs=[inputs], outputs=[x])

def call(self, inputs, **kwargs):
x = inputs
for i in range(self.num_timestaps):
x = self.model(x)
return x

关于tensorflow - 在 Keras 中使用 RNN 和 CNN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62272495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com