【问题标题】:Tensorflow vs Numpy concat operationTensorflow vs Numpy concat 操作
【发布时间】: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


【解决方案1】:

tf.concat 期望张量的 list 沿轴连接。如果您只指定一个张量,它只会打印该张量并且什么都不做。

【讨论】:

    猜你喜欢
    • 2018-03-19
    • 1970-01-01
    • 2019-10-05
    • 2021-09-14
    • 1970-01-01
    • 2016-06-14
    • 2023-03-24
    • 1970-01-01
    • 2014-09-13
    相关资源
    最近更新 更多