import numpy as np
def softmax(x):
"""
计算softmax函数的输出。
参数:
x -- 输入数组 (numpy array),可以是一维或多维
返回:
s -- softmax函数的输出,与输入x形状相同
"""
# 对于每个样本,减去最大值以防止数值溢出
e_x = np.exp(x - np.max(x, axis=-1, keepdims=True))
# 计算softmax
s = e_x / np.sum(e_x, axis=-1, keepdims=True)
return s
# 示例用法
if __name__ == "__main__":
# 创建一个示例输入
example_input = np.array([[2.0, 1.0, 0.1],
[1.0, 2.0, 3.0]])
# 计算softmax输出
output = softmax(example_input)
# 打印结果
print("Softmax 输出:\n", output)
softmax(x) 函数:该函数接收一个 numpy 数组 x 作为输入,并返回经过 softmax 函数处理后的结果。Softmax 函数将输入数组转换为概率分布,使得输出数组中的每个元素都在 [0, 1] 之间,并且所有元素之和为 1。
防止数值溢出:在计算 softmax 时,为了避免指数运算导致的数值溢出问题,通常会先从每个元素中减去该行的最大值。
example_input:这是一个示例输入数组,用于展示如何使用 softmax 函数。你可以替换为你自己的数据进行测试。
output:这是经过 softmax 函数处理后的输出,表示输入数据的概率分布。
上一篇:python clip
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站