Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tensorflow:“;错开;索引的序列掩码?_Python_Tensorflow - Fatal编程技术网

Python Tensorflow:“;错开;索引的序列掩码?

Python Tensorflow:“;错开;索引的序列掩码?,python,tensorflow,Python,Tensorflow,输入如下: [1,3,2] 期望输出,如(在适当的张量中): 也就是说,非常类似于tf.sequence_mask(它会给出类似于: [1 1 1 0 1 1 0 1 0] ),但每个后续元素都是“交错”的,以在之前的序列掩码完成后开始 非常感谢您的帮助。可以通过获取一个大小等于您输入中元素数量的方形标识矩阵,然后对标识矩阵中的每一行应用tf.tile()inputs[i]次数来实现: 将tensorflow导入为tf 输入=tf.常数([1,3,2]) unit=tf.eye(num\u

输入如下:

[1,3,2]

期望输出,如(在适当的张量中):

也就是说,非常类似于tf.sequence_mask(它会给出类似于:

[1 1 1
 0 1 1
 0 1 0]
),但每个后续元素都是“交错”的,以在之前的序列掩码完成后开始


非常感谢您的帮助。

可以通过获取一个大小等于您输入中元素数量的方形标识矩阵,然后对标识矩阵中的每一行应用
tf.tile()
inputs[i]
次数来实现:

将tensorflow导入为tf
输入=tf.常数([1,3,2])
unit=tf.eye(num\u rows=inputs.get\u shape().as\u list()[0])
未堆叠=tf.未堆叠(单位)
平铺=[tf.tile(u[None,…],倍数=[inputs[i],1])
对于枚举中的i,u(未加标记)]
res=tf.concat(平铺,轴=0)
使用tf.Session()作为sess:
打印(sess.run(res))
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 1. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]
#  [0. 0. 1.]]

哇,感谢您的快速响应!这太完美了。太好了,很高兴它有帮助!
[1 1 1
 0 1 1
 0 1 0]