私の目標は、(1)初期値としてファイルから事前にトレーニングされた単語の埋め込み行列を読み込みます。 (2)単語の埋め込みを固定しないで微調整する。 (3)モデルを復元するたびに、事前に訓練されたものの代わりに微調整された単語の埋め込みをロードします。Tensorflow:再トレーニング中に事前にトレーニングされた埋め込みの初期化の問題
私は好きSTH試してみました:
class model():
def __init__(self):
# ...
def _add_word_embed(self):
W = tf.get_variable('W', [self._vsize, self._emb_size],
initializer=tf.truncated_normal_initializer(stddev=1e-4))
W.assign(load_and_read_w2v())
# ...
def _add_seq2seq(self):
# ...
def build_graph(self):
self._add_word_embed()
self._add_seq2seq()
をしかし、このアプローチは、私が訓練を停止して再起動するたびに埋め込む微調整の単語をカバーします。私もmodel.build_graph
を呼び出した後にsess.run(W.assign())
を試しました。しかし、それはグラフが完成したので私はもうそれを変更することはできませんエラーを投げた。それを達成する正しい方法を教えてください。前もって感謝します!
EDIT:ITは、新しい要件を持っているよう
この質問が重複していない:USE THE TRAININGの先頭にWORDの埋め込みをPREは、訓練を受け、その後FIND-TUNE ITを。これを効率的に行う方法も尋ねます。この質問で受け入れられた回答は、この要件に合致したものではありません。どんな質問にも重複して表示される前に二度考えてみてください。ここで
Uがで答えを見つけることができます.com/questions/35687678/pre-training-word-embedding-word2vec-glove-in-tensorflowを使用する –
@vijaymどちらの答え?受け入れられた答えは、単語埋め込みを固定したままにしておくので、私が欲しいものではありません。 – user5779223
受け入れられた回答(2)で、 'trainable = False'を削除するだけです。 –