Python 用numpy解叠TensorFlow

Python 用numpy解叠TensorFlow,python,numpy,tensorflow,matrix,data-science,Python,Numpy,Tensorflow,Matrix,Data Science,我正在将代码从tensorflow移植到numpy,这行代码有问题: tensor_unstack = tf.unstack(some_tensor, axis=0) 该方法已被使用,我无法在numpy中找到等效方法。因此,我的问题是,在使用numpy时,如何实现tf.unstack?可以用来取消numpy数组的堆栈。以下是一个例子: import tensorflow as tf import numpy as np a = np.array([1, 2, 3]) b = np.array

我正在将代码从tensorflow移植到numpy,这行代码有问题:

tensor_unstack = tf.unstack(some_tensor, axis=0)
该方法已被使用,我无法在numpy中找到等效方法。因此,我的问题是,在使用numpy时,如何实现tf.unstack?

可以用来取消numpy数组的堆栈。以下是一个例子:

import tensorflow as tf
import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.stack([a, b])
*d, = c
print(d)

c_ = tf.stack([a, b])
d_ = tf.unstack(c_)

with tf.Session() as sess:
    print(sess.run(d_))

上述答案不允许指定要进行的拆分轴或拆分数量

谢天谢地,内置numpy函数提供了更好的解决方案。查看及其专用版本
numpy.hsplit
numpy.vsplit
numpy.dsplit
numpy.array\u split

import numpy
a = numpy.arange(9).reshape(3,3)

# makes 3 equal splits along axis 0. equivalent to numpy.vsplit
print(numpy.split(a, 3, axis=0))

# 3 equal splits along axis 1. equivalent to numpy.hsplit
print(numpy.split(a, 3, axis=1))

但是,这将保留“未堆叠”维度:如果
x.shape:(4,2,3)
,则
x1,x2=np。hsplit(x,2)
将产生
x1.shape:(4,1,3)
。可以使用
挤压
x1,x2=[xx.shplit(x,2)]中的xx的挤压()
,现在
x1.shape:(4,3)