【问题标题】:Can I export the embedding matrix of words in tensorflow?我可以在张量流中导出单词的嵌入矩阵吗?
【发布时间】:2018-06-09 17:29:43
【问题描述】:
def word_embedding(shape, dtype=tf.float32, name='word_embedding'):
  with tf.device('/cpu:0'), tf.variable_scope(name):
    return tf.get_variable('embedding', shape, dtype=dtype, initializer=tf.random_normal_initializer(stddev=0.1), trainable=True,partitioner=tf.fixed_size_partitioner(20))
embedding = word_embedding([vocab_size, embed_size])
inputs_embedding = tf.contrib.layers.embedding_lookup_unique(embedding, inputs)

这是我的代码,embedding 是单词的变量,用于查找自己的嵌入向量。

我已经训练了嵌入矩阵,我想从保存的模型中提取它。该模型还包含其他参数,例如嵌入之上的神经网络。我可以实现吗?

【问题讨论】:

    标签: tensorflow neural-network nlp deep-learning word-embedding


    【解决方案1】:

    请参阅my answer 来回答类似问题。

    最简单的方法是将嵌入矩阵评估为一个 numpy 数组,并将其与解析的单词一起写入文件。

    with tf.Session() as sess:
      embedding_val = sess.run(embedding)
      with open('embedding.txt', 'w') as file_:
        for i in range(vocabulary_size):
          embed = embedding_val[i, :]
          word = word_to_idx[i]
          file_.write('%s %s\n' % (word, ' '.join(map(str, embed))))
    

    如果您只想为 this 图保存嵌入,您可以创建 tf.train.Saver 并传递要保存的变量列表:

    saver = tf.train.Saver([embedding])
    with tf.Session() as sess:
      saver.save(sess, 'path/to/checkpoint')
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-18
    • 2018-11-01
    • 2019-05-03
    • 1970-01-01
    • 2023-03-20
    • 2018-05-24
    • 2018-12-09
    • 1970-01-01
    相关资源
    最近更新 更多