Создать модель встраивания без присмотра в керас? - PullRequest
1 голос
/ 18 марта 2020

Я хочу создать автокодер со следующей архитектурой:

    path_source_token_input = Input(shape=(MAX_CONTEXTS,), dtype=tf.int32, name='source_token_input')
    path_input = Input(shape=(MAX_CONTEXTS,), dtype=tf.int32, name='path_input')
    path_target_token_input = Input(shape=(MAX_CONTEXTS,), dtype=tf.int32, name='target_token_input')

    paths_embedded = Embedding(PATH_SIZE, DEFAULT_EMBEDDINGS_SIZE, name='path_embedding')(path_input)

    token_embedding_shared_layer = Embedding(TOKEN_SIZE, DEFAULT_EMBEDDINGS_SIZE, name='token_embedding')
    path_source_token_embedded = token_embedding_shared_layer(path_source_token_input)
    path_target_token_embedded = token_embedding_shared_layer(path_target_token_input)

    context_embedded = Concatenate()([path_source_token_embedded, paths_embedded, path_target_token_embedded])  # --> this up to now, is the output of the STANDALONE embedding model

    -------- SPLIT HERE? ------

    context_after_dense = TimeDistributed(Dense(CODE_VECTOR_SIZE, use_bias=False, activation='tanh'))(context_embedded)  # in short, this layer probably has to stay

    encoded = LSTM(100, activation='relu', input_shape=context_after_dense.shape)(context_after_dense)
    decoded = RepeatVector(MAX_CONTEXTS)(encoded)
    decoded = LSTM(100, activation='relu', return_sequences=True)(decoded)
    result = TimeDistributed(Dense(1), name='PROBLEM_is_here')(decoded)  # this seems to be some trick according to https://github.com/keras-team/keras/issues/10753, so probably don't remove

    inputs = (path_source_token_input, path_input, path_target_token_input)
    model = tf.keras.Model(inputs=inputs, outputs=result)

До сих пор я узнал, что невозможно реализовать инвертированный слой внедрения в декодере, поэтому, естественно, мой вывод состоит в том, чтобы разделить мой сеть на две части: одна для генерации каскадных вложений ввода, а вторая часть - это сам кодировщик с вводом в виде каскадных вложений (вывод первой части). Теперь мой вопрос: возможно ли создать модель встраивания без присмотра в керасах? или где-нибудь еще в этом отношении. Мои данные не имеют маркировки, и цель моей последней нейронной сети - создать кластеры упомянутых немеченых данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...