gpt4 book ai didi

tensorflow - Keras 自动编码器并获取压缩的特征向量表示

转载 作者:行者123 更新时间:2023-11-30 08:37:46 27 4
gpt4 key购买 nike

文件中每行一个句子,句子不超过 30 个单词。我正在使用 Keras 构建一个自动编码器,而且我对此非常陌生 - 所以我可能做错了一些事情。所以,请帮帮我。

我正在尝试使用自动编码器来获取中间上下文向量 - 编码步骤后的压缩特征向量。词汇表只不过是我文件中不同单词的列表。 300是词嵌入矩阵的维度。 30 是每个句子可以包含的最大单词数。 X_train 是 (#of Sent, 30) 数字矩阵,其中每个数字只不过是该单词在字典中存在的位置。

print len(vocabulary)
model = Sequential()
model.add(Embedding(len(vocabulary), 300))
model.compile('rmsprop', 'mse')

input_i = Input(shape=(30, 300))
encoded_h1 = Dense(64, activation='tanh')(input_i)
encoded_h2 = Dense(32, activation='tanh')(encoded_h1)
encoded_h3 = Dense(16, activation='tanh')(encoded_h2)
encoded_h4 = Dense(8, activation='tanh')(encoded_h3)
encoded_h5 = Dense(4, activation='tanh')(encoded_h4)
latent = Dense(2, activation='tanh')(encoded_h5)
decoder_h1 = Dense(4, activation='tanh')(latent)
decoder_h2 = Dense(8, activation='tanh')(decoder_h1)
decoder_h3 = Dense(16, activation='tanh')(decoder_h2)
decoder_h4 = Dense(32, activation='tanh')(decoder_h3)
decoder_h5 = Dense(64, activation='tanh')(decoder_h4)

output = Dense(300, activation='tanh')(decoder_h5)

autoencoder = Model(input_i,output)

autoencoder.compile('adadelta','mse')

X_embedded = model.predict(X_train)
autoencoder.fit(X_embedded,X_embedded,epochs=10, batch_size=256, validation_split=.1)

print autoencoder.summary()

这个想法取自 Keras - Autoencoder for Text Analysis

那么,在训练之后(如果我做得正确的话)我应该如何为每个句子运行编码部分以获得特征表示?感谢帮助。谢谢!

最佳答案

为编码器制作独立模型

encoder=Model(input_i,latent)

假设对于 mnist 数据,代码应该是这样的 -

encoder.predict(x_train[0]) 

这样你就会得到 Latent_space 向量作为输出

关于tensorflow - Keras 自动编码器并获取压缩的特征向量表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50911122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com