TensorFlow embedding_lookup_sparse优化

时间:2018-07-11 14:11:31

标签: python tensorflow sparse-matrix embedding

我有一些embedding_vectors,我需要使用以下new_embeddings

new_embeddings = tf.nn.embedding_lookup_sparse(
    params=embedding_vectors,
    sp_ids=some_ids,
    sp_weights=None,
)

问题在于,some_ids确实很大,并且对于给定的数据二维张量而言,常数非常稀疏。我的管道包括对其indicesvaluesshape的评估,我将它们与训练循环中的sparse_placeholder直接一起使用以填充some_ids占位符。 / p>

不幸的是,它非常慢。似乎在每个训练步骤中,some_ids都被转换为密集的张量,这似乎确实是不必要且奇怪的。我对这种转换是否正确,embedding_lookup_sparse是否还有其他选择?

1 个答案:

答案 0 :(得分:0)

我发现tf.sparse_tensor_dense_matmul()tf.nn.embedding_lookup_sparse()快了。