【问题标题】:How to input 5D tensor to keras model.fit如何将 5D 张量输入到 keras model.fit
【发布时间】:2020-01-31 09:16:26
【问题描述】:

我正在使用 tensorflow 版本 2,tensorflow.keras。

我制作的模型是tf.keras.Conv2D的序列(需要4D输入张量(样本、行、列、通道)

然后tf.keras.convLSTM2D(需要 5D 输入张量(样本、时间、行、列、通道)。

由于这个原因,我使用 5D 张量(样本、时间、行、列、通道)进行了输入,但在我实现 model.fit(train_data, train_data... ) 时,一开始无法将其输入 tf.keras.Conv2D

有什么办法可以让model.fit取5D张量?

【问题讨论】:

  • 您的问题有点误导,问题不在于 model.fit,而是您尝试将 5D 张量输入到 Conv2D,这是行不通的。 Conv3D 将毫无问题地接受您的张量。
  • 您可以使用 Conv3D,只需将时间轴步幅和内核保持在 1。
  • 你不应该在时间 conv2D 网络的情况下使用 conv3D。 Keras 的 TimeDistributed 层就是为此而设计的。

标签: tensorflow keras tensorflow2.0


【解决方案1】:

你需要实现TimeDistributedconv2D,如:

x_conv = tf.keras.layers.TimeDistributed(tf.keras.layers.Conv2D(filters=filters,
                                                                kernel_size=kernel_size,
                                                                strides=strides,
                                                                padding='same',
                                                                kernel_initializer='he_normal'))(x)

通过这种方式,图层可以理解您正在通过 timestep 提供 4D 输入

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    相关资源
    最近更新 更多