我有一个张量(shape=batchsize)。我想以特定的顺序重塑张量,使其形状=-1,2。但我想要:
<代码>H19元素位于0,2<代码>H210元素位于0,3<代码>H212H113元素位于2,1<代码>H214H115元素位于3,1,依此类推,对于未知的批处理大小。<代码>H216<代码>G217
这是一个带有张量range=(0到input=8)的示例代码。
import tensorflow as tf
import numpy as np
batchsize = tf.placeholder(shape=[], dtype=tf.int32)
x = tf.range(0, batchsize, 1)
x = tf.reshape(x, shape=[2, -1])
y = tf.transpose(x)
z = tf.reshape(y, shape=[-1, 2])
input = 8
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
msg = sess.run([z], feed_dict={batchsize: input})
print(msg)现在我的输出是:
[array([[0, 4],
[1, 5],
[2, 6],
[3, 7]], dtype=int32)]但我希望输出是:
[array([[0, 2],
[1, 3],
[4, 6],
[5, 7]], dtype=int32)]请记住,我不知道批量大小有多大,我只是出于示范原因设置了input= 8。此外,在这里,我想在每个第二个元素之后打破顺序。在未来,我也希望有这样的灵活性。在我的实际代码中,张量“x”不是范围数组,而是复杂的随机数组,所以你不能以任何方式对w.r.t进行排序。这些值。我只是出于演示的目的编写了这段代码。
发布于 2018-06-18 03:07:42
你可以试一试
tf.reshape(tf.matrix_transpose(tf.reshape(x, [-1, 2, 2])), [-1, 2])https://stackoverflow.com/questions/50899488
复制相似问题