Я пытаюсь создать распознаватель речи с использованием тензорного потока и получаю эту ошибку, что
ValueError: преобразование тензорного типа запрашивает dtype int64 для Tensor с помощью dtype float32: 'Tensor (' loss_2 / lambda_loss / ExpandDims): 0 ", shape = (?, 1), dtype = float32) '
и
TypeError: Вход' y 'из' Mul 'Op имеет тип float32который не соответствует типу int64 аргумента 'x'.
Минимальный рабочий код, в котором тензор потока импортируется как tf
train_input_val = tf.keras.layers.Input(name='the_input', shape=[None,num_features], dtype='float32')
seq_len = tf.keras.layers.Input(name='input_length', shape=[1], dtype='int64')
y_pred = tf.keras.layers.Lambda(ctc_decode_func ,name = 'lambda')([train_input_val, seq_len])
model2 = tf.keras.Model(inputs=[train_input_val,seq_len],outputs=y_pred)
model2.compile(loss={'lambda': lambda y_true, y_pred: y_true}, optimizer='adam')
, а ctc_decode_func определяется как
def ctc_decode_func(args):
y_pred, seq_len = args
y_pred,log_prob = tf.keras.backend.ctc_decode(y_pred, tf.squeeze(seq_len))
return y_pred
Я пытался привести все к int64, но ошибка все еще сохранялась.Я даже не знаю, какая часть лямбда-слоя выдает ошибку.
Пожалуйста, помогите