Tensorflow/Keras 应用于张量的嵌入层
Tensorflow/Keras embedding layer applied to a tensor
我想创建一个张量流模型,它将一个整数列表和 return 相应的预训练嵌入作为输入。
例如,如果输入批次为 [[1, 2, 3], [4, 5, 6]]
我希望模型为 return
[[embed[1], embed[2], embed[3]], [embed[4], embed[5], embed[6]]
,其中 embed
是一个包含预训练嵌入的矩阵。
我想我能够创建一个带有预训练嵌入的嵌入层,但我的代码只有 return 一个嵌入。
embedding_dim = 5
vocab_size = 100
embedding_matrix = np.random.random((vocab_size, embedding_dim))
emb_model = tf.keras.Sequential()
embedder = tf.keras.layers.Embedding(vocab_size,
embedding_dim,
embeddings_initializer=tf.keras.initializers.Constant(embedding_matrix),
trainable=False,
input_shape=(None,))
emb_model.add(embedder)
例如,如果我 emb_model([[[8, 2, 7], [2, 8, 4]]])
只有第 8 项的嵌入是 returned
这是正确的做法
embedding_dim = 5
vocab_size = 100
test = np.asarray([[1, 2, 3],
[4, 5, 6]])
embedding_matrix = np.random.uniform(-1,1, (vocab_size,embedding_dim))
emb_model = tf.keras.Sequential()
embedder = tf.keras.layers.Embedding(vocab_size,
embedding_dim,
trainable=False,
weights=[embedding_matrix],
input_shape=(None,))
emb_model.add(embedder)
emb_model(test)
我们初始化一个权重矩阵并将其插入模型weights=[embedding_matrix]
设置trainable=False
在这一点上,我们可以通过我们感兴趣的 id 直接计算我们的预测
结果是一个 dim 数组 (n_batch, n_token, embedding_dim)
我想创建一个张量流模型,它将一个整数列表和 return 相应的预训练嵌入作为输入。
例如,如果输入批次为 [[1, 2, 3], [4, 5, 6]]
我希望模型为 return
[[embed[1], embed[2], embed[3]], [embed[4], embed[5], embed[6]]
,其中 embed
是一个包含预训练嵌入的矩阵。
我想我能够创建一个带有预训练嵌入的嵌入层,但我的代码只有 return 一个嵌入。
embedding_dim = 5
vocab_size = 100
embedding_matrix = np.random.random((vocab_size, embedding_dim))
emb_model = tf.keras.Sequential()
embedder = tf.keras.layers.Embedding(vocab_size,
embedding_dim,
embeddings_initializer=tf.keras.initializers.Constant(embedding_matrix),
trainable=False,
input_shape=(None,))
emb_model.add(embedder)
例如,如果我 emb_model([[[8, 2, 7], [2, 8, 4]]])
只有第 8 项的嵌入是 returned
这是正确的做法
embedding_dim = 5
vocab_size = 100
test = np.asarray([[1, 2, 3],
[4, 5, 6]])
embedding_matrix = np.random.uniform(-1,1, (vocab_size,embedding_dim))
emb_model = tf.keras.Sequential()
embedder = tf.keras.layers.Embedding(vocab_size,
embedding_dim,
trainable=False,
weights=[embedding_matrix],
input_shape=(None,))
emb_model.add(embedder)
emb_model(test)
我们初始化一个权重矩阵并将其插入模型weights=[embedding_matrix]
设置trainable=False
在这一点上,我们可以通过我们感兴趣的 id 直接计算我们的预测
结果是一个 dim 数组 (n_batch, n_token, embedding_dim)