我有一些embedding_vectors,我需要使用以下new_embeddings
new_embeddings = tf.nn.embedding_lookup_sparse(
params=embedding_vectors,
sp_ids=some_ids,
sp_weights=None,
)问题是,对于给定的二维张量,some_ids确实很大,而且非常稀疏,但却是恒定的。我的管道包括对它的indices、values和shape的评估,我直接与sparse_placeholder中的训练循环一起使用这些评估来填充some_ids占位符。
不幸的是,它非常缓慢。似乎在每一个训练步骤中,some_ids都被转换成密度张量,这似乎是不必要的,也是很奇怪的。我对这个转换是正确的吗?对于embedding_lookup_sparse有其他选择吗?
发布于 2018-08-24 07:44:13
我发现matmul()比tf.nn.embedding_lookup_sparse()快。
https://stackoverflow.com/questions/51287735
复制相似问题