Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.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
Tensorflow整形和衬垫_Tensorflow - Fatal编程技术网

Tensorflow整形和衬垫

Tensorflow整形和衬垫,tensorflow,Tensorflow,我有一个2D张量,每行包含一个数据点。数据的大小在图形生成时未知。我需要将数据张量转换为RNN的一批数据,作为三维张量,新元素用零填充。在图形构建时,序列长度和序列数都未知。序列长度是一个tf。占位符,数据张量是先前tf操作的输出。我该如何扭转这种局面 # Data [[1 1] [1 1] [2 2] [3 3] [3 3] [3 3]] # Sequence lengths [2 1 3] 进入这个 [[[1 1] [1 1] [0 0]] [[2 2] [0 0

我有一个2D
张量,每行包含一个数据点。数据的大小在图形生成时未知。我需要将数据张量转换为RNN的一批数据,作为三维张量,新元素用零填充。在图形构建时,序列长度和序列数都未知。序列长度是一个
tf。占位符
,数据张量是先前tf操作的输出。我该如何扭转这种局面

# Data
[[1 1]
 [1 1]
 [2 2]
 [3 3]
 [3 3]
 [3 3]]
# Sequence lengths
[2 1 3]
进入这个

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

 [[2 2]
  [0 0]
  [0 0]]

 [[3 3]
  [3 3]
  [3 3]]]
tf.split
+
tf.pad
+
tf.concat
方法不起作用,因为在图形构建时序列的数量未知,
tf.split
要求
num\u或\u size\u splits
参数具有固定的形状

tf.dynamic\u partition
+
tf.stack
方法使用
tf生成的分区索引。而从序列长度生成的\u loop
不起作用,因为
tf.dynamic\u partitions
num\u partitions
参数需要是固定整数,而不是张量,而序列的数量在图形构建时是未知的

tf.scatter\u update
+
tf.使用
tf生成的行索引和行值重新塑造
方法。而从序列长度生成的\u loop
不起作用,因为
tf.scatter\u update
需要
变量
并且
变量
需要固定大小(数据张量的大小在图形构建时未知)

我可以在构建图时修复批大小,但这会导致在批大小更改时需要重建图,因此我不想这样做


这可能实现吗?

我刚刚问了一个类似的问题,并得到了答案。