首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow python:将输入[batchsize]重塑为具有特定顺序的张量[batchsize,2]

Tensorflow python:将输入[batchsize]重塑为具有特定顺序的张量[batchsize,2]
EN

Stack Overflow用户
提问于 2018-06-18 02:44:43
回答 1查看 213关注 0票数 0

我有一个张量(shape=batchsize)。我想以特定的顺序重塑张量,使其形状=-1,2。但我想要:

  1. 元素位于0,0
  2. 元素位于1,0
  3. 元素位于1,1,1
  4. 元素位于1,1

<代码>H19元素位于0,2<代码>H210元素位于0,3<代码>H212H113元素位于2,1<代码>H214H115元素位于3,1,依此类推,对于未知的批处理大小。<代码>H216<代码>G217

这是一个带有张量range=(0到input=8)的示例代码。

代码语言:javascript
复制
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)

现在我的输出是:

代码语言:javascript
复制
[array([[0, 4],
       [1, 5],
       [2, 6],
       [3, 7]], dtype=int32)]

但我希望输出是:

代码语言:javascript
复制
[array([[0, 2],
       [1, 3],
       [4, 6],
       [5, 7]], dtype=int32)]

请记住,我不知道批量大小有多大,我只是出于示范原因设置了input= 8。此外,在这里,我想在每个第二个元素之后打破顺序。在未来,我也希望有这样的灵活性。在我的实际代码中,张量“x”不是范围数组,而是复杂的随机数组,所以你不能以任何方式对w.r.t进行排序。这些值。我只是出于演示的目的编写了这段代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-18 03:07:42

你可以试一试

代码语言:javascript
复制
 tf.reshape(tf.matrix_transpose(tf.reshape(x, [-1, 2, 2])), [-1, 2])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50899488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档