Вы можете создать фиктивные входные данные
# you have defined the rest of your graph somewhere here
Y_train = Input(shape=...)
X_train_length = Input(shape=...)
loss = Lambda(function=ctc_lambda_func, name='ctc', output_shape=(1,)
)([y_pred, Y_train, X_train_length, label_length])
# defining the model is slightly different with multiple inputs
training_model = Model(inputs=[image_input, Y_train, X_train_length], outputs=[loss])
А когда вы хотите обучить вашу модель, вы передадите параметр x
в виде списка длины 3, например
x = [<images - np.ndarray shape (batch, h, w, c)>, <Y_train inputs - np.ndarray>,
<X_train_length inputs - np.ndarray>]
И, конечно же, фиктивные значения для y
y = np.zeros((batch, 1))
И, наконец, это никогда не было проще, чем training_model.train_on_batch(x, y)
В качестве альтернативы создайте генератор, который генерирует x
и y
в форму, описанную выше, и используйте training_model.fit_generator(data_generator)