嵌入查找表不会屏蔽填充值

Ale*_*lia 7 python machine-learning python-3.x tensorflow

我正在使用embedding_lookup操作,以便为我的文档中的每个令牌生成密集的向量表示,这些表示被提供给卷积神经网络(网络架构类似于WildML文章中的那个).

一切正常但是当我填充文档时在其中插入填充值时,嵌入查找也会生成此标记的向量.我认为这种方法可以改变分类任务中的结果.我想要实现的是与Torch LookupTableMaskZero类似的东西.

1)我想做什么是正确的?

2)已经实现了这样的东西?

3)如果没有,我如何屏蔽填充值以防止生成相应的向量?

先感谢您,

亚历山德罗

all*_*len 3

@Alessandro Suglia 我认为这个功能很有用,不幸的是现在不支持。获得相同结果但速度较慢的一种解决方法是查找两次。像下面这样

  lookup_result = tf.nn.embedding_lookup(emb, index)
  masked_emb = tf.concat(0, [tf.zeros([1, 1]), 
                             tf.ones([emb.get_shape()[0] - 1, 1])
  mask_lookup_result = tf.nn.embedding_lookup(masked_emb, index)
  lookup_result = tf.mul(lookup_result, mask_lookup_result)
Run Code Online (Sandbox Code Playgroud)