我有一个形状为<!DOCTYPE html>
<head>
<script src="./abc.js"></script>
<script src="./def.js"></script>
</head>
<body>
<script>
var graphArray = [];
assignValues();
graphArray = getInputGraph();
console.log(graphArray );
</script>
</body>
</html>
的张量tensor
,我想将此张量切成for循环的(?, 1082)
子部分,但我想保留原始形状,包括未知形状维度n
。
示例:
?
我正在寻找的打印输出:
lst = []
for n in range(15):
sub_tensor = tensor[n] # this will reduce the first dimension
print(sub_tensor.get_shape())
等
如何在TensorFlow中实现?
答案 0 :(得分:1)
考虑到您的问题可能有很多限制,我可以想到至少3个解决方案。
您可以使用tf.split
。我将使用tf.placeholder,但它也适用于张量和变量。
p = tf.placeholder(shape=[None,10], dtype=tf.int32)
s1, s2 = tf.split(value=p, num_or_size_splits=2, axis=1)
但是,如果需要的拆分数量很大,则此方法将变得不可行。请注意,它也可以分割None
轴。
for n in range(15):
sub_tensor = tensor[n, :]
s = tf.slice(p, [0,2], [-1, 2])
切片可以用于多维张量,但是使用起来非常棘手。而且您可以使用tf.Tensor.getitem
方法,几乎就像您在问题中所描述的那样。它的行为类似于NumPy
。因此,这应该可以完成工作:
for n in range(10):
print(p[n, :])
但是,这些方法的使用在很大程度上取决于您的特定应用程序。希望这会有所帮助。