gpt4 book ai didi

tensorflow - 使用预训练的 word2vec 初始化 Seq2seq 嵌入

转载 作者:行者123 更新时间:2023-12-03 00:41:19 26 4
gpt4 key购买 nike

我对使用预训练的 word2vec 初始化tensorflow seq2seq 实现感兴趣。

我已经看过代码了。嵌入似乎已初始化

with tf.variable_scope(scope or "embedding_attention_decoder"):
with tf.device("/cpu:0"):
embedding = tf.get_variable("embedding", [num_symbols, cell.input_size])

如何更改它以使用预训练的 word2vec 进行初始化?

最佳答案

我认为您已经在邮件列表中得到了答案,但我将其放在这里供后代使用。

https://groups.google.com/a/tensorflow.org/forum/#!topic/discuss/bH6S98NpIJE

You can initialize it randomly and afterwards do: session.run(embedding.assign(my_word2vec_matrix))

This will override the init values.

这似乎对我有用。我相信需要 trainable=False 来保持值固定吗?

# load word2vec model (say from gensim)
model = load_model(FILENAME, binary=True)

# embedding matrix
X = model.syn0
print(type(X)) # numpy.ndarray
print(X.shape) # (vocab_size, embedding_dim)

# start interactive session
sess = tf.InteractiveSession()

# set embeddings
embeddings = tf.Variable(tf.random_uniform(X.shape, minval=-0.1, maxval=0.1), trainable=False)

# initialize
sess.run(tf.initialize_all_variables())

# override inits
sess.run(embeddings.assign(X))

关于tensorflow - 使用预训练的 word2vec 初始化 Seq2seq 嵌入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33851950/

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