Недостающие данные для ввода

#tensorflow #keras #lstm

Вопрос:

Я хочу построить модель в TF2 , которая состоит из следующих компонентов: MobilenetV2 , 2 слоя BLSTM , а затем CTC прикрепленный к нему. Ниже показана модель:

 def build_model():
    img_width = 200
    img_height = 50

    input_img = layers.Input(shape=(img_width, img_height, 3), name="input_1", dtype="float32")

    labels = layers.Input(name="label", shape=(None,), dtype="float32")

    base_model=tf.keras.applications.MobileNet(
        input_shape=(img_width, img_height, 3),
        alpha=1.0,
        depth_multiplier=1,
        dropout=0.001,
        include_top=False,
        weights="imagenet",
        input_tensor=None,
        pooling=None,
        classes=1000,
        classifier_activation="softmax",
    )
    x = base_model.output
    x = layers.Reshape(target_shape=(6,1024), name="reshape")(x)
    x = Bidirectional(layers.LSTM(128, return_sequences=True, dropout=0.25))(x)
    x = Bidirectional(layers.LSTM(64, return_sequences=True, dropout=0.25))(x)
    output = CTCLayer(name="ctc_loss")(labels, x)
    
    # Define the model
    model = keras.models.Model(
        inputs=[base_model.input, labels], outputs=output, name="ocr_model_v1"
    )
    # Optimizer
    opt = keras.optimizers.Adam()
    # Compile the model and return
    model.compile(optimizer=opt)
    return model
 

когда я вызываю build_model функцию, она выдает следующую ошибку:

Ошибка значения: Отсутствуют данные для ввода «input_1». Вы передали словарь данных с ключами [«изображение», «метка»]. Ожидаются следующие ключи: [‘ввод_1’, ‘метка’]

Есть идеи, как это решить?

Комментарии:

1. Ошибка очевидна. Либо переименуйте name="input_1" в name="image" , либо измените свой ключ ввода.