检索张量中1的位置或在1处拆分张量

时间:2019-12-12 15:47:21

标签: python tensorflow

我正在寻找基于单词长度的位置编码。 在对单词边界进行一些“预处理”之后(它们也在网络的其他部分中使用了),我看一个带有0's1's的张量,其中1是单词的开头, 0这个词的一部分。一个示例为[1,0,0,1,0,0] or [1,0,1,1]。所需的输出将是1's的位置(可以从中计算出单词Legnths),或直接分割为张量列表,每个张量分别与该单词一样长(在每个位置上都分开很多) 1,因此将[1,0,1,1]拆分为[[1,0],[1],[1]]。 由于几乎只有长度很重要,因此只要能为词位置编码检索不同的词长度(以正确的顺序),就不会在石头上固定确切的输出。搜索的值对于第一个示例为3,3,对于第二个示例为2,1,1。 我在考虑tf.argmax,但它只给出一个最大值,而不是全部。

1 个答案:

答案 0 :(得分:0)

找到了一种找到1的索引的解决方案: 让max = [1,0,1,1]然后tf.boolean_mask(tf.range(max.shape[0]),max)返回一个张量,其中所有张数都为1。