【发布时间】:2018-05-17 06:26:33
【问题描述】:
我只是在 numpy 和 tensorflow 中尝试了一些代码,因为 tensorflow 在后端使用 numpy,所以我没想到某些操作(如 concat 操作)会出现差异。
在 Numpy 中
z = np.array(
[
[
[1,2,3,],
[4,5,6,]
],
[
[7,8,9],
[10,11,12]
],
[
[13,14,15],
[16,17,18]
]
])
np.concatenate(z ,axis=1) 给出
array([[ 1, 2, 3, 7, 8, 9, 13, 14, 15],
[ 4, 5, 6, 10, 11, 12, 16, 17, 18]])
在张量流中
hello = tf.constant(value = [
[
[1,2,3,],
[4,5,6,]
],
[
[7,8,9],
[10,11,12]
],
[
[13,14,15],
[16,17,18]
]
] )
tf.concat(hello ,axis=1) gives
array([[[ 1, 2, 3],
[ 4, 5, 6]],
[[ 7, 8, 9],
[10, 11, 12]],
[[13, 14, 15],
[16, 17, 18]]])
为什么会有这种差异
【问题讨论】:
-
np.concatenate需要一个数组列表或等效项。在这种情况下,它将z视为 3 个二维数组的列表。np.concatenate( list(z), axis=1))做同样的事情。 -
@hpaulj 完全正确。
标签: python numpy multidimensional-array tensorflow tensor