gpt4 book ai didi

python - Keras 中的图像序列处理 ConvLSTM 与 LSTM 架构

转载 作者:行者123 更新时间:2023-11-28 22:17:33 30 4
gpt4 key购买 nike

我需要训练基于序列的 10x10 图像分割。以下是我要使用的 lstm 和 convlstm 模型:

def lstmModel():
# Model definition
model = Sequential()
model.add(LSTM(50, batch_input_shape=(1, None, inp.shape[1]*inp.shape[2]), return_sequences=True, stateful=True))
model.add(Dense(out.shape[1]*out.shape[2], activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()
return model


def convlstmModel():
# Model definition
model = Sequential()
model.add(ConvLSTM2D(12, kernel_size=5, padding = "same", batch_input_shape=(1, None, inp.shape[1], inp.shape[2], 1), return_sequences=True, stateful=True))
model.add(Conv2D(20, 3, padding='same', activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()
return model

我针对 10 个随机 10x10 图像序列的序列训练模型。 LSTM 模型似乎对我来说工作正常,但 ConvLSTM 模型显示 Conv2D 层的维度不匹配:

ValueError: Input 0 is incompatible with layer conv2d_1: expected ndim=4, found ndim=5

非常感谢任何帮助。谢谢!

最佳答案

LSTM 层用于“时间序列”。
Conv 层用于“静止图像”。

一个需要像 (batch, steps, features)
这样的形状另一个要求:(batch, witdh, height, features)

现在,ConvLSTM2D 混合了两者并需要 (batch, steps, width, height, features)

当离开 ConvLSTM2D 时,您有一个 Conv2D 不支持的额外 steps 维度。

如果你想保持这个维度,使用带有 TimeDistributed 包装器的卷积:

model.add(TimeDistributed(Conv2D(...))

请注意,与只有 3 个维度的其他模型相比,您仍将拥有所有 5 个维度。

您应该使用某种 reshape 或其他操作使其适合您的训练数据。

由于您的问题没有显示任何相关内容,我们现在只能回答这些问题。

关于python - Keras 中的图像序列处理 ConvLSTM 与 LSTM 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51326233/

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