【问题标题】:How to use argmax on a numpy array如何在 numpy 数组上使用 argmax
【发布时间】:2021-10-09 02:52:26
【问题描述】:

我在 Python 中使用 Keras 深度学习。 我有一个具有这种形状的 numpy 数组: [5, 30, 30, 30, 65] 我想沿第 5 维 (65) 执行 argmax,将每个第 5 个数组中最大值的索引设置为 1,将所有其他数组的索引设置为 0。对于上下文,该数组由生成器模型输出,我是使用长度为 65 的最后一维作为 one-hot 编码。 我该怎么做呢?

【问题讨论】:

    标签: python machine-learning numpy-ndarray


    【解决方案1】:

    要在第 5 维上执行 argmax 操作,您可以使用从 0 开始的计数来指定 axis 参数。

    因此,要获得第 5 维的 argmax,您将使用:
    idx = np.argmax(arr, axis=4)[0, 0, 0, 0]

    然后,要将第 5 维数组转换为 one-hot 编码,您可以将该数组设置为 np.zeros 数组,然后将 idx 处的值(从上面)更新为 1,如下所示:

    arr[a, b, c, d] = np.zeros((65,))
    arr[a, b, c, d, idx] = 1
    

    其中abcd 是第 1 到第 4 维的任意索引。

    【讨论】:

      猜你喜欢
      • 2017-04-02
      • 2021-08-04
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多