如何拆分张量然后将其连接起来?

时间:2016-11-17 18:41:58

标签: python tensorflow deep-learning

我的输入数据的格式为[None,2,100],基本上我有一堆2个单元格数组,每个数组都包含大小为100的向量。我想通过一个单独的输入层运行每个向量,然后layer将结果连接成一个向量。

我的问题如下: 给定一个形状的张量[无,2,100],如何将其转换为大小[无,100]? 然后,给出两个大小为[None,50]的张量,如何将它们连接成大小[None,100]?

提前致谢。

2 个答案:

答案 0 :(得分:2)

  1. 您可以使用类似numpy的索引,tf.slicetf.unpack

    c = tf.placeholder(tf.int32, shape=[None, 2, 100])
    d = c[:,0,:]
    e = tf.squeeze(tf.slice(c, [0,1,0], [-1, 1, -1]), squeeze_dims=[1])
    [d, e] = tf.unpack(c, axis=1)
    
  2. 级联:

    a = tf.placeholder(tf.int32, shape=[None, 50])
    b = tf.placeholder(tf.int32, shape=[None, 50])
    tf.concat(1, [a,b]).get_shape()
    TensorShape([Dimension(None), Dimension(100)])
    

答案 1 :(得分:0)

您还可以执行以下操作:

tf.concat(tf.unstack(feature_output), 0)