如何对Lod-tensor中的序列取均值
Created by: xeyond
- 版本、环境信息: 1)PaddlePaddle版本:1.7 2)GPU:Cuda9.0
- 问题描述: 使用Lod-tensor传入fluid.embedding之后得到embeding的序列,现在想要对每个序列的embedding取平均值,应该如何操作? 例子:对于data为[[1, 2], [3, 4], [5, 6]],lod为[[0, 1]]的Lod-tensor,想要分别对{[1, 2]}和{[3, 4], [5, 6]}取均值,得到[[1, 2], [4, 5]]的结果
- 代码: x = fluid.layers.data(name='x', shape=[None, None], dtype='int64', lod_level=1) y = fluid.layers.data(name='y', shape=[None, 1], dtype='int64') word_embeddings = fluid.embedding(input=x, size=[vocab_size, embedding_size], is_sparse=True) line_emb_feat = fluid.layers.reduce_mean(input=word_embeddings, dim=-2, keep_dim=False) hidden_layer = fluid.layers.fc(input=line_emb_feat, size=hidden_layer_dim, act='relu')