【问题标题】:Correct input for TimeDistributed Convolution2D KerasTimeDistributed Convolution2D Keras 的正确输入
【发布时间】:2020-04-16 18:41:18
【问题描述】:

我有一个 327 帧的序列,尺寸为 480 行和 640 列,灰度。

打印(X_train.shape) 给出:(327, 480, 640, 1)

我有以下型号:

N = 2 #number of frames to distribute
model = Sequential()
model.add(TimeDistributed(Convolution2D(32, activation='relu'), input_shape = (N, 480,640,1)))
...

打印 (model.output_shape) 给出:(无, 2, 480, 640, 32)

我需要多一维才能将此输入传递给卷积。 事实上我有以下错误: ValueError:检查输入时出错:预期 time_distributed_1_input 有 5 个维度,但得到的数组形状为 (327, 480, 640, 1)

如何解决?

谢谢!

编辑:从根本上说,我需要将输入 (327, 480, 640, 1) 转换为 (x, 2, 480, 640, 1) (x=327/2 ?)

【问题讨论】:

  • 您的问题不清楚。你说你有一个 327 帧的序列。但是您的模型时间步长是 2。
  • 是的,我想以 2 帧 2 帧的形式拍摄。1-2、2-3、3-4 ... 也许有些地方不正确?
  • 我仍然不清楚您要做什么。可能会重写您的问题,包括示例场景或其他内容。
  • 我添加了一个编辑。我只是有一些难以重新安排我的数据工作。
  • 如果要进行reshape,总元素需要匹配。 327/2 不会产生整数,因此您不可能以具有 2 个时间步长的方式重塑此张量。您可以做的是获取第一个 326 并将其重塑为 [163, 2, 480, 640, 1]。

标签: tensorflow keras conv-neural-network


【解决方案1】:

您正在尝试对 3D 数据 (2x480x640) 执行 2D 卷积。使用Convolution3D

【讨论】:

    猜你喜欢
    • 2017-05-25
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 2017-07-12
    • 2021-06-07
    • 2019-01-29
    • 1970-01-01
    • 2017-07-11
    相关资源
    最近更新 更多