Python Tensorflow:如何在不改变维数的情况下切片张量?

Python Tensorflow:如何在不改变维数的情况下切片张量?,python,tensorflow,Python,Tensorflow,例如,如果我们有: a = tf.constant(np.eye(5)) a <tf.Tensor 'Const:0' shape=(5, 5) dtype=float64> a[0,:] <tf.Tensor 'strided_slice:0' shape=(5,) dtype=float64> (tf.expand_dims(a[0,:],axis=0)可以工作,但是否有更直接、更简单的方法?至少有两种直接方法,与NumPy中可用的方法非常类似() 在该轴上获取大小

例如,如果我们有:

a = tf.constant(np.eye(5))
a
<tf.Tensor 'Const:0' shape=(5, 5) dtype=float64>
a[0,:]
<tf.Tensor 'strided_slice:0' shape=(5,) dtype=float64>

tf.expand_dims(a[0,:],axis=0)
可以工作,但是否有更直接、更简单的方法?

至少有两种直接方法,与NumPy中可用的方法非常类似()

  • 在该轴上获取大小为1的范围:
    a[x:x+1]
  • 添加带有
    None
    的轴:
    a[None,x]
  • a[0:1]
    
    数组([1,0,0,0,0.]))
    数组([[1,0,0,0,0.]]
    数组([[1,0,0,0,0.]]
    
    a[0,:]
    <tf.Tensor 'strided_slice:0' shape=(1,5) dtype=float64>
    
    <tf.Tensor 'strided_slice_1:0' shape=(1, 5) dtype=float64>