
def softmax(x):
x = x[0]
x_row_max = np.max(x,axis=-1)
x_row_max = x_row_max.reshape(tuple(list(x.shape)[:-1]+[1]))
x = x - x_row_max
x_exp = np.exp(x)
x_exp_row_sum = np.sum(x_exp,axis=-1).reshape(tuple(list(x.shape)[:-1]+[1]))
softmax = x_exp / x_exp_row_sum
return softmax 大家好,我是[简简单单的创意],一名软件程序员,也是一名UP主。今天我们来聊聊深度学习中常用的 Softmax 函数,它是多分类问题中不可或缺的一部分。
Softmax 是一种激活函数,用于将输入值转换为概率分布。它的输出值范围在 之间,且所有输出值的和为 1。Softmax 通常用于多分类问题的输出层。
Softmax 的数学公式如下:

Softmax 的数学公式
其中:
xixi 是输入的第 ii 个值。
分母是所有输入的指数和。
下面是一个 Python 实现的 Softmax 函数:
def softmax(x):
x_row_max = np.max(x, axis=-1, keepdims=True)
x = x - x_row_max # 数值稳定性处理
x_exp = np.exp(x)
x_exp_row_sum = np.sum(x_exp, axis=-1, keepdims=True)
softmax = x_exp / x_exp_row_sum
return softmax
输入:
x:输入数据,形状为 (batch_size, num_classes) 或 (num_classes,)。
输出:
softmax:Softmax 转换后的概率分布。
步骤:
计算每行的最大值,并进行数值稳定性处理。
对输入进行指数运算。
计算指数值的和。
将每个指数值除以对应行的指数和,得到概率分布。
在 Softmax 的实现中,直接计算指数可能会导致数值溢出。因此,我们通常会对输入进行归一化处理(减去最大值),从而避免数值问题。
Softmax 是深度学习中非常重要的函数,尤其在多分类问题中。理解 Softmax 的原理和实现,对于掌握深度学习模型非常有帮助。
如果你对深度学习感兴趣,欢迎关注我的频道,我会继续分享更多关于机器学习和深度学习的内容。如果你有任何问题或建议,也欢迎在评论区留言,我们一起讨论!
感谢大家的观看,别忘了点赞、投币、收藏,我们下期再见!
希望这篇稿件对你有帮助!如果有任何修改或补充的需求,欢迎随时提出!