我想在tensoflow中创建一个二维矩阵,连接由for循环生成的多个一维数组。 举例来说,在每个循环中都会生成一个形状 = (1,5) 的数组,其中充满了 ([1,1,1,1,1])。 我最终需要在 3 个循环后得到的是:
[[1,1,1,1,1]
[1,1,1,1,1]
[1,1,1,1,1]]
我实际上需要一个解决方案,在每个循环中在矩阵中添加一个新行。如何用 tensorflow 创建它?我想到了 tf.concat 但是,我不知道在循环期间在哪里保存矩阵的值。
最佳答案
如果有大量循环,则需要连接数组。让我们从第一个只有一维的向量 v1
开始。首先使用 tf.reshape()
将其 reshape 为尺寸 (1, vector_size)
.
v1 = tf.reshape(v1, [1, vector_size])
现在您可以对向量 v2
执行相同的操作并使用 tf.concat()
沿 axis=0
连接两个数组。
v1 = tf.concat(0, [v1, v2])
请注意,我在这里重复使用了v1
。这将在您的循环中,并且 v2
将成为新变量。
如果您有固定的较小数量的数组(在问题的上下文中循环),您可以通过 tf.stack()
来执行此操作.
假设您的第一个循环生成数组 v1
、第二个 v2
和第三个 v3
。
您可以按如下方式使用tf.stack()
,
result = tf.stack([v1, v2, v3])
关于matrix - Tensorflow:使用多个 tf.concat 创建矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41079249/