为什么tf.slice会返回此错误?

时间:2016-11-18 16:04:25

标签: neural-network tensorflow deep-learning

我正在尝试构建一个多层感知器,其中我的数据由多对特征组成,例如:每个输入都是一个数组x_1 = [v_1,v_2],其中v_i是特征向量。因此,我的输入张量大小为[None,2,50](每个v_i的大小为50)。现在我尝试并且未能将输入张量分成两个张量:一个包含v_1&,而另一个包含v_2' s。例如,为了获得v_1的修改张量,我尝试:

v1 = tf.squeeze(tf.slice(input, [0,0,0], [-1, 1, -1]), squeeze_dims=[1])) 

我得到: 大小必须是等级3 ......在我看来,它似乎是......我做错了什么? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

分割在轴= 1上(您的第2维:[None, 2 ,50]),并且希望在两侧均等分布:[1,1],(使用[2, 0],[0,2]看看会发生什么,一个拆分什么都不会得到)

v1,v2  = tf.split(input,num_or_size_splits=[1,1],axis=1)
v1 = tf.squeeze(v1,1)

split返回一个列表,现在可以对其进行压缩