在将数据传递给模型 Tensorflow 时输入形状 ValueError

问题描述 投票:0回答:0

我有以下用于下一帧预测的 convLSTM 模型:

class MyModel(keras.models.Model):
  def __init__(self, n_layers, n_filters, kernel_size):
    super(MyModel, self).__init__()

    self.n_layers = n_layers
    self.n_filters = n_filters
    self.kernel_size = kernel_size
    self.conv_lstms = []
    self.batch_norms = []

    for i in range(self.n_layers):
        conv_lstm = layers.ConvLSTM2D(filters = self.n_filters[i],
                                      kernel_size = self.kernel_size[i],
                                      padding = 'same',
                                      return_sequences = True)
        bn = layers.BatchNormalization()
        self.batch_norms.append(bn)

        self.conv_lstms.append(conv_lstm)

    self.cnn = layers.Conv3D(filters=1,
                             kernel_size=(3,3,3),
                             activation='sigmoid',
                             padding='same')

这是我的通话功能:

def call(self, inputs):
  input_shape = inputs.shape
  seq_len = input_shape[1]

  x = inputs

  for i in range(seq_len):
      for j in range(self.n_layers):
          x = self.conv_lstms[j](x)
          x = self.batch_norms[j](x)

      if i == 0:
          x_outputs = x
      else:
          x_outputs = layers.concatenate([x_outputs, x], axis=1)

  x_outputs = self.conv3d(x_outputs)
  return x_outputs

我有一般的 model.compile() 调用和 model.fit() 调用。我将输入数据传递给具有以下输入形状的输入层:

    inputLayer = tf.keras.Input(shape=(12, 74, 104, 1)
    x = MyModel(nLayers, nFilters, kernelSize)(inputLayer)
    model = tf.keras.Model(inputs=inputLayer, outputs=x)

我的输入数据形状也为 (5000, 12, 74, 104, 1) 其中

(batch_size, timesteps, height, width, channels)

但我收到以下错误:

ValueError:“conv_lstm2d”层的输入 0 与 图层:预期形状=(无,无,74、104、1),发现形状=(无,12, 74、104、64)

层“mymodel_conv_lstm”接收的调用参数(类型 MyModel): • inputs=tf.Tensor(shape=(None, 12, 74, 104, 1), dtype=float32)

我试过设置

shape=(None, 12, 74, 104, 1)
shape=(None, 74, 104, 1)
但它们都不起作用。

任何帮助将不胜感激

python tensorflow deep-learning computer-vision conv-neural-network
© www.soinside.com 2019 - 2024. All rights reserved.