我正在尝试使用tensorflow制作语音识别器,并且遇到了该错误
ValueError:Tensor转换请求Tensor具有dtype int64 dtype float32:'Tensor(“ loss_2 / lambda_loss / ExpandDims:0”,shape =(?, 1),dtype = float32)'
和
TypeError:“ Mul”操作的输入“ y”具有不匹配的float32类型 输入参数'x'的int64。
将tensorflow作为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,但错误仍然存在。我什至不知道lambda层的哪一部分引发了错误。
请帮助