#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. Вы передаете входные данные в модель, которая буквально имеет строковые значения, нейронная сеть не может вводить строковые значения. Спасибо!