Я следовал учебному руководству Towards Data Science о моделях word2vec и skip -gram, но наткнулся на проблему, которую не могу решить, несмотря на то, что искал ее часами и пытался найти множество неудачных решений.
https://towardsdatascience.com/understanding-feature-engineering-part-4-deep-learning-methods-for-text-data-96c44370bbfa
Шаг, который показывает, как построить архитектуру модели скип-граммы, кажется устаревшим из-за использования слоя Merge из keras.layers.
Мне кажется,много дискуссий по этому поводу, и большинство ответов было о том, что вам нужно использовать функциональный API Keras для объединения слоев.Но проблема в том, что я новичок в Keras и не знаю, как перевести мой код с последовательного на функциональный, вот код, который автор использовал (и я скопировал):
from keras.layers import Merge
from keras.layers.core import Dense, Reshape
from keras.layers.embeddings import Embedding
from keras.models import Sequential
# build skip-gram architecture
word_model = Sequential()
word_model.add(Embedding(vocab_size, embed_size,
embeddings_initializer="glorot_uniform",
input_length=1))
word_model.add(Reshape((embed_size, )))
context_model = Sequential()
context_model.add(Embedding(vocab_size, embed_size,
embeddings_initializer="glorot_uniform",
input_length=1))
context_model.add(Reshape((embed_size,)))
model = Sequential()
model.add(Merge([word_model, context_model], mode="dot"))
model.add(Dense(1, kernel_initializer="glorot_uniform", activation="sigmoid"))
model.compile(loss="mean_squared_error", optimizer="rmsprop")
# view model summary
print(model.summary())
# visualize model structure
from IPython.display import SVG
from keras.utils.vis_utils import model_to_dot
SVG(model_to_dot(model, show_shapes=True, show_layer_names=False,
rankdir='TB').create(prog='dot', format='svg'))
Икогда я запускаю блок, появляется следующая ошибка:
ImportError Traceback (most recent call last)
<ipython-input-79-80d604373468> in <module>()
----> 1 from keras.layers import Merge
2 from keras.layers.core import Dense, Reshape
3 from keras.layers.embeddings import Embedding
4 from keras.models import Sequential
5
ImportError: cannot import name 'Merge'
Здесь я спрашиваю несколько советов о том, как преобразовать этот последовательный объект в структуру функционального API.