哪个API可以在tensorflow中实现张量扩展?

问题描述 投票:1回答:2

如果我有一个(30,40,50)的张量,并且我想将它扩展到第一个顺序,那么我得到二阶张量(30,2000),我不知道张量流是否有实现它的API。

import tensorflow as tf
import numpy as np
data1=tf.constant([
    [[2,5,7,8],[6,4,9,10],[14,16,86,54]],
    [[16,43,65,76],[43,65,7,24],[15,75,23,75]]])

data5=tf.reshape(data1,[3,8])

data2,data3,data4=tf.split(data1,3,1)
data6=tf.reshape(data2,[1,8])
data7=tf.reshape(data3,[1,8])
data8=tf.reshape(data4,[1,8])
data9=tf.concat([data6,data7,data8],0)

with tf.Session() as sess:
    print(sess.run(data5))
    print(sess.run(data))

这给出了:

data5
[[ 2 5 7 8 6 4 9 10]
[14 16 86 54 16 43 65 76]
[43 65 7 24 15 75 23 75]]

data9
[[ 2 5 7 8 16 43 65 76]
[ 6 4 9 10 43 65 7 24]
[14 16 86 54 15 75 23 75]]

我如何直接获取data9?

python tensorflow
2个回答
0
投票

看起来你正试图将子张量跨越轴0(data1[0]data1[1],...),并沿轴2连接它们。

在重塑之前进行转置应该可以解决问题:

tf.reshape(tf.transpose(data1, [1,0,2]), [data1.shape[1], data1.shape[0] * data1.shape[2]])

0
投票

你可以试试:

data9 = tf.layers.flatten(tf.transpose(data1, perm=[1, 0, 2]))

输出:

array([[ 2,  5,  7,  8, 16, 43, 65, 76],
       [ 6,  4,  9, 10, 43, 65,  7, 24],
       [14, 16, 86, 54, 15, 75, 23, 75]], dtype=int32)
© www.soinside.com 2019 - 2024. All rights reserved.