You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对Numpy矩阵每行独立执行Softmax计算?

解决Softmax按行独立计算的问题

修改后的Softmax实现如下:

def softmax(x):
    # 计算每行的最大值,keepdims保持维度以便广播
    e_x = np.exp(x - np.max(x, axis=1, keepdims=True))
    # 按行求和,同样保持维度匹配
    return e_x / e_x.sum(axis=1, keepdims=True)

关键修改说明:

  • 原代码中np.max(x)会计算整个矩阵的全局最大值,我们需要每行的最大值来做数值稳定,因此添加axis=1指定按行取最大值,keepdims=True让结果保持(6,1)的形状,和输入x的(6,4)维度兼容,避免广播错误。
  • 原代码中e_x.sum()会对整个矩阵的所有元素求和,改为e_x.sum(axis=1, keepdims=True)后,会对每行的元素单独求和,得到的结果是(6,1)的列向量,这样和e_x做除法时,会自动将每行的和广播到该行的所有元素,实现每行独立计算Softmax。

调用softmax(w0)后,结果中每行的元素和都为1,完全符合单个样本Softmax概率的要求。

内容的提问来源于stack exchange,提问作者MsA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 04:52:34