Ошибка при попытке скомпилировать модель keras ValueError: преобразование Tensor запросило dtype int64 для Tensor с dtype float32 - PullRequest
0 голосов
/ 24 марта 2019

Я пытаюсь создать распознаватель речи с использованием тензорного потока и получаю эту ошибку, что

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, но ошибка все еще сохранялась.Я даже не знаю, какая часть лямбда-слоя выдает ошибку.

Пожалуйста, помогите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...