我想创建一个tensorflow模型,它将整数列表作为输入,并返回相应的预训练嵌入
例如,如果输入批为[[1, 2, 3], [4, 5, 6]]
,我希望模型返回
[[embed[1], embed[2], embed[3]], [embed[4], embed[5], embed[6]]
,其中embed
是包含预训练嵌入的矩阵
我想我能够用预先训练好的嵌入创建一个嵌入层,但是我的代码只返回一个嵌入
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项的嵌入
这是正确的方法
我们初始化一个权重矩阵并将其插入模型
weights=[embedding_matrix]
设置trainable=False
此时,我们可以通过感兴趣的ID直接计算预测
结果是一个dim数组(n_批处理、n_令牌、嵌入_dim)
相关问题 更多 >
编程相关推荐