Python 用numpy解叠TensorFlow
我正在将代码从tensorflow移植到numpy,这行代码有问题: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
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)