Я столкнулся с ошибкой, когда следил за учебным пособием по вычислению сходства со слоями встраивания keras.

То, что я впервые нашел в stackoverflow, не решило эту проблему, поэтому я решил сократить ключевые слова для поиска.

Исходный код:

import tensorflow as tf
from keras.layers import Input, Dense, Embedding
from keras.models import Model
...
valid_size = 16
valid_window = 100
valid_examples = np.random.choice(valid_window, valid_size, replace=False)
valid_word = Input((1,), dtype='int32')
other_word = Input((1,), dtype='int32')
embeddings = Embedding(input_dim=embedding_matrix.shape[0], output_dim=embedding_matrix.shape[1],
                      weights=[embedding_matrix])
embedded_a = embeddings(valid_word)
embedded_b = embeddings(other_word)
# (Another stuff...this method doesn't work!!)
# similarity = merge([embedded_a, embedded_b], mode='cos', dot_axes=2) 
similarity = keras.layers.dot([embedded_a, embedded_b], 2, normalize=True)

Во-первых, метод слияния в туториале сейчас устарел… поэтому я нашел другой способ вычисления косинусного сходства, то есть метод точечный. Потом показал ошибку:

'Embedding' object has no attribute 'outbound_nodes'

Этот вопрос помог мне решить мою проблему ❤️



Keras + Tensorflow: объект «ConvLSTM2D не имеет атрибута outbound_nodes
Я пытаюсь использовать ConvLSTM как часть моей функционирующей сети tensorflow, потому что у меня были некоторые проблемы с помощью…stackoverflow.com»



Я только что заменил:

from keras.layers import Input, Dense, Embedding
from keras.models import Model

by:

from tensorflow.python.keras.layers import Input, Dense, Embedding
from tensorflow.keras.models import Model

Это связано с несоответствием версий библиотек tensorflow и keras.

Самый чистый и простой способ решить эту проблему — использовать слои keras, содержащиеся в самом пакете tensorflow, а не напрямую использовать библиотеку keras.

Это все. ❤