#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"
, либо измените свой ключ ввода.