鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

softmax

softmax是一种常用的激活函数,特别在多分类问题中经常被使用。它将一组任意实数转换为概率分布,其输出值的范围在0到1之间,并且所有输出值的总和为1。

主要特点包括:

  • 归一化输出:softmax函数将输入进行归一化,确保输出是一个有效的概率分布。即使输入是任意实数值,softmax函数的输出总和仍为1,因此它常用于多分类问题的输出层。
  • 非线性特性:softmax函数是一个非线性函数,可以对输入进行非线性变换,增加模型的表示能力,从而更好地拟合复杂的数据模式。
  • 平移不变性:softmax函数对输入进行平移不变性,即在输入向量中每个元素都增加(或减少)相同的常数时,softmax输出不受影响。

在神经网络中,softmax函数通常用于输出层,将神经网络的原始输出转换为表示类别概率的向量。在训练过程中,softmax输出与真实标签之间的差异可以用作损失函数,通过反向传播算法来更新网络参数,以最小化损失并提高模型性能。

接口定义

def softmax(arr: np.ndarray)->np.ndarray

该函数接收一个1D或2D的numpy数组,并返回softmax计算的结果。

输入参数

参数名

类型

说明

arr

ndarray

元素为任意实数,数据类型支持FP32,维度支持1D/2D。

返回值

类型

说明

ndarray

形状与输入一致。

示例

>>> import numpy as np
>>> from libkdnn_ext import softmax
>>> x = np.random.rand(1, 5).astype(np.float32)
>>> softmax(x)
array([[0.19810137, 0.21171768, 0.16419397, 0.24222486, 0.1837621 ]], dtype=float32)