当前位置:  开发笔记 > 编程语言 > 正文

tensorflow创建不同长度的掩模

如何解决《tensorflow创建不同长度的掩模》经验,为你挑选了2个好方法。

我在tensorflow中有一个长度的张量,让我们说它看起来像这样:

[4, 3, 5, 2]

我想创建一个1和0的掩码,其数量为1对应于此张量的条目,填充0到总长度8.即我想创建此张量:

[[1,1,1,1,0,0,0,0],
 [1,1,1,0,0,0,0,0],
 [1,1,1,1,1,0,0,0],
 [1,1,0,0,0,0,0,0]
]

我怎么能这样做?



1> Sonal Gupta..:

现在可以通过以下方式实现tf.sequence_mask.有关详细信息,请访问https://www.tensorflow.org/versions/r0.11/api_docs/python/array_ops.html#sequence_mask



2> mrry..:

这可以使用各种TensorFlow转换来实现:

# Make a 4 x 8 matrix where each row contains the length repeated 8 times.
lengths = [4, 3, 5, 2]
lengths_transposed = tf.expand_dims(lengths, 1)

# Make a 4 x 8 matrix where each row contains [0, 1, ..., 7]
range = tf.range(0, 8, 1)
range_row = tf.expand_dims(range, 0)

# Use the logical operations to create a mask
mask = tf.less(range_row, lengths_transposed)

# Use the select operation to select between 1 or 0 for each value.
result = tf.select(mask, tf.ones([4, 8]), tf.zeros([4, 8]))

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有