UnimplementedError: преобразование строки в float не поддерживается

#python #tensorflow #keras #nlp #siamese-network

#python #тензорный поток #keras #nlp #сиамский-сеть

Вопрос:

Обратная трассировка UnimplementedError (последний последний вызов)

UnimplementedError: найдено 2 ошибки root. (0) Не выполнено: преобразование строки в float не поддерживается [[node functional_11/Приведение (определено в :1) ]] (1) Отменено: функция была отменена до ее запуска 0 успешных операций. 0 производных ошибок игнорируются. [Op:__inference_train_function_47870]

Стек вызовов функций: train_function -> train_function

Вот мой код. Есть идеи, что я делаю не так?

 lstm_layer = tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(lstm_units, dropout=0.2, recurrent_dropout=0.2))

# loading our matrix
emb = tf.keras.layers.Embedding(max_words, embedding_dim, input_length=300, weights=[embedding_matrix],trainable=False)

input1 = tf.keras.Input(shape=(300,))
e1 = emb(input1)
x1 = lstm_layer(e1)

input2 = tf.keras.Input(shape=(300,))
e2 = emb(input2)
x2 = lstm_layer(e2)

mhd = lambda x: tf.keras.backend.abs(x[0] - x[1])

merged = tf.keras.layers.Lambda(function=mhd, output_shape=lambda x: x[0],name='L1_distance')([x1, x2])

preds = tf.keras.layers.Dense(1, activation='sigmoid')(merged)
model = tf.keras.Model(inputs=[input1, input2], outputs=preds)
model.compile(loss='mse', optimizer='adam')
model.summary()
history = model.fit([X_train[:,0], X_train[:,1]], y_train, epochs=100, validation_data=([X_valid[:,0], X_valid[:,1]], y_valid))```
 

Комментарии:

1. Проверьте свои данные. Сложно отлаживать без ваших данных, но вы, вероятно, используете строку вместо чисел.

2. Вы передаете входные данные в модель, которая буквально имеет строковые значения, нейронная сеть не может вводить строковые значения. Спасибо!