keras - 在 keras 中创建无监督嵌入模型?
问题描述
我想创建一个具有以下架构的自动编码器:
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)
到目前为止,我已经了解到在解码器中实现反向嵌入层是不可能的,所以我的结论自然是将我的网络一分为二:一个生成输入的串联嵌入,第二部分是自动编码器本身与输入作为连接嵌入(第一部分的输出)。现在我的问题是,是否可以在 keras 中创建无监督嵌入模型?或其他任何地方。我的数据是未标记的,我最终的神经网络的重点是创建所述未标记数据的集群。
解决方案
推荐阅读
- flutter - 如何在颤动中显示html文本?
- php - 在查询 Laravel 中传递属性
- amazon-web-services - 是否可以像使用 ADFS 一样在 AzureAD 中进行自定义声明转换?
- sql - 获取以下输出(Oracle 11g)的选择查询是什么?
- reactjs - 如何在反应中显示数据
- selenium - 尝试使用 pagefactory 处理 POM 中的 webtable 但抛出错误
- angular - 如何加快用户界面
- python - 如何将 pandas.series.groupby() 表从计数转换为百分比频率?
- gnuplot - gnuplot 在绘图中显示实际数据(时间)
- java - lambda 表达式中的错误返回类型:无法转换为布尔值