我正在寻找基于单词长度的位置编码。
在对单词边界进行一些“预处理”之后(它们也在网络的其他部分中使用了),我看一个带有0's
和1'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
,但它只给出一个最大值,而不是全部。
答案 0 :(得分:0)
找到了一种找到1的索引的解决方案:
让max = [1,0,1,1]
然后tf.boolean_mask(tf.range(max.shape[0]),max)
返回一个张量,其中所有张数都为1。