Python 如何对N-d张量进行切片和求和?

Python 如何对N-d张量进行切片和求和?,python,tensorflow,Python,Tensorflow,我有一个形状张量[None,2,7],一个更好理解的虚拟形状。我需要在tensorflow中获得以下numpy功能 arr = np.array([[[1, 2, 3,4,5,6,7], [4, 5, 6,1,2,3,4]], [[1, 2, 3,7,6,5,4], [4, 5, 6,4,3,2,1]]]) #in numpy x[:, :, -3:] = x[:, :, :3] - \ x[:, :, :3].sum(axis=1, keepdims=True)/num

我有一个形状张量[None,2,7],一个更好理解的虚拟形状。我需要在tensorflow中获得以下numpy功能

arr = np.array([[[1, 2, 3,4,5,6,7], [4, 5, 6,1,2,3,4]], [[1, 2, 3,7,6,5,4], [4, 5, 6,4,3,2,1]]])

#in numpy 
x[:, :, -3:] = x[:, :, :3] - \
    x[:, :, :3].sum(axis=1, keepdims=True)/num         #num shape is [None,1,1]
我需要在tensorflow中执行上述操作。但tensorflow不支持对占位符执行切片操作

在我的例子中,x的None依赖于其他操作。如果它是一个输入占位符,那就很容易了

有没有解决此问题的方法或帮助


提前感谢

执行您需要的操作,并与旧张量的其余部分连接起来

sliced = x[:, :, :3] - tf.reduce_sum(x[:, :, :3], axis=1, keepdims=True) 
new_tensor = tf.concat([x[:,:,:-3], sliced], axis=-1)
如果你以后需要相同的名字

old_tensor = new_tensor