小编Ton*_*tto的帖子

使用TensorFlow变换有效地将标记转换为单词向量

我想在训练,验证和推理阶段使用TensorFlow Transform将标记转换为单词向量.

我按照这个StackOverflow帖子实现了从标记到向量的初始转换.转换按预期工作,我获取EMB_DIM每个令牌的向量.

import numpy as np
import tensorflow as tf

tf.reset_default_graph()
EMB_DIM = 10

def load_pretrained_glove():
    tokens = ["a", "cat", "plays", "piano"]
    return tokens, np.random.rand(len(tokens), EMB_DIM)

# sample string 
string_tensor = tf.constant(["plays", "piano", "unknown_token", "another_unknown_token"])


pretrained_vocab, pretrained_embs = load_pretrained_glove()

vocab_lookup = tf.contrib.lookup.index_table_from_tensor(
    mapping = tf.constant(pretrained_vocab),
    default_value = len(pretrained_vocab))
string_tensor = vocab_lookup.lookup(string_tensor)

# define the word embedding
pretrained_embs = tf.get_variable(
    name="embs_pretrained",
    initializer=tf.constant_initializer(np.asarray(pretrained_embs), dtype=tf.float32),
    shape=pretrained_embs.shape,
    trainable=False)

unk_embedding = tf.get_variable(
    name="unk_embedding",
    shape=[1, EMB_DIM],
    initializer=tf.random_uniform_initializer(-0.04, 0.04),
    trainable=False)

embeddings = …
Run Code Online (Sandbox Code Playgroud)

word2vec tensorflow apache-beam tensorflow-transform glove

13
推荐指数
1
解决办法
569
查看次数