【问题标题】:confused about sum_axis in mxnet in the tutorial对教程中 mxnet 中的 sum_axis 感到困惑
【发布时间】:2017-06-06 01:06:59
【问题描述】:

我正在阅读 NDarray part 上的 mxnet 教程,我对 sum_axis 函数的使用感到困惑,示例是:

>>> a = mx.nd.ones((2,3))
>>> c = mx.nd.sum_axis(a, axis=1)
>>> c.asnumpy()
    array([ 3.,  3.], dtype=float32)
>>> c = mx.nd.sum_axis(a, axis=0)
>>> c.asnumpy()
    array([ 2.,  2.,  2.], dtype=float32)

我想知道当参数axis的值为1时,我认为它应该输出

array([ 2.,  2.,  2.], dtype=float32)

但不是

array([ 3.,  3.], dtype=float32)

当参数axis 的值为1 时,我认为sum_axis 应该计算沿列的总和,但结果显示它沿行计算总和。

而且似乎numpy 也是这样计算的,我真的不明白为什么会这样。 所以有人可以解释一下吗?

谢谢!!

【问题讨论】:

    标签: mxnet


    【解决方案1】:

    Numpy 已经描述了二维数组中的轴。一个二维数组有两个对应的轴:第一个垂直向下穿过行(轴 0),第二个垂直向下穿过列(轴 1)。

    例如检查链接 https://docs.scipy.org/doc/numpy-1.12.0/glossary.html MXNet 也是如此。所以,在你上面提到的例子中: a = [[ 1., 1., 1.], [1., 1., 1.]]

    axis 0 表示垂直向下。因此,它将为您提供输出 [2., 2., 2.] 和轴 1 表示水平跨列。所以,它会给你输出 [3., 3.]

    【讨论】:

    • 谢谢!这就是我想要的。但是我仍然有一个问题,如果有超过 2 个轴怎么办。
    • 我认为这个可视化表示和切片示例将帮助您更详细地理解它。 stackoverflow.com/questions/40857930/…
    猜你喜欢
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2019-01-15
    • 1970-01-01
    • 2021-12-15
    • 2011-01-24
    • 2018-01-11
    相关资源
    最近更新 更多