2016-11-17 38 views
2

我的输入数据的形式是[无,2,100],基本上我有一堆2个单元格阵列,每个阵列都包含大小为100的矢量。我想通过单独的输入层运行每个矢量,然后在该图层之后将结果连接成一个向量。如何分割张量然后连接它?

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

在此先感谢。

回答

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)]) 
    
+0

感谢。对于1),我不想重塑张量。例如,如果张量是[None,x_1,x_2],我想将它分成[None,x_1]和[None,x_2]。 – Barry

+0

好的,我不清楚。正在更新... – sygi

+0

这是完美的,非常感谢! – Barry