gpt4 book ai didi

python - 用于视频分类的 CNN LSTM keras

转载 作者:行者123 更新时间:2023-11-30 08:47:52 24 4
gpt4 key购买 nike

我创建了一个视频数据集,其中每个视频的尺寸为 5(帧)x 32(宽度)x 32(高度)x 4( channel )。我正在尝试使用 CNN LSTM 网络对这些视频进行分类(二元分类),但我对输入形状以及如何 reshape 数据集以训练网络感到困惑。

model = Sequential()
model.add(TimeDistributed(Conv2D(64, 5, activation='relu', padding='same', name='conv1', input_shape=??))
model.add(TimeDistributed(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='same', name='pool1')))

model.add(TimeDistributed(Conv2D(64, 5, activation='relu', padding='same', name='conv2'))
model.add(TimeDistributed(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='same', name='pool2')))

model.add(TimeDistributed(Conv2D(64, 5, activation='relu', padding='same', name='conv3'))
model.add(TimeDistributed(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='same', name='pool3')))

model.add(TimeDistributed(Conv2D(64, 5, activation='relu', padding='same', name='conv4'))
model.add(TimeDistributed(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='same', name='pool4')))


model.add(TimeDistributed(Flatten()))
model.add(LSTM(256, return_sequences=False, dropout=0.5))
model.add(Dense(1, activation='sigmoid'))

我在模型中遗漏了什么吗?

最佳答案

您的输入形状应为(batch_size、时间步长、高度、宽度、 channel )。所以它应该是一个5维张量。

此外,您的 input_shape 参数应该像这样。它应该是 TimeDistributed 层的参数,而不是 Conv2D 层,因为 TimeDistributed 是第一层。在这里,我展示了 a 的输入形状,

  • 任意数量的样本批处理
  • 5 个时间步长(视频帧)
  • 32vpixels 高(高度)
  • 32 像素宽(宽度)
  • 4 个 channel
model.add(TimeDistributed(Conv2D(64, 5, activation='relu', padding='same', name='conv1'), input_shape=(5, 32, 32, 4)))

关于python - 用于视频分类的 CNN LSTM keras,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59537272/

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