给定张量[5,4,3,4],如何生成一个常数张量,其中每行有n个和m个零,n = 5,4,3,4,m = 0,1,2,1。

时间:2017-08-17 02:21:50

标签: tensorflow tensor

给定张量A:[5,4,3,4],我想创建一个张量B:

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

根据A,B的每一行都有n个,其中n = 5,4,3,4。剩余的位置用零填充。

我可以在tensorflow中实现这个,以及如何实现?

1 个答案:

答案 0 :(得分:2)

您可以使用tf.sequence_mask

import tensorflow as tf

A = tf.constant([5,4,3,4], dtype=tf.int32)
max_len = tf.reduce_max(A)
B = tf.sequence_mask(A, max_len, dtype=tf.int32)
with tf.Session() as sess:
  print(sess.run(B))

打印:

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