softmax函数python实现
2024-08-29 11:22:10
import numpy as np def softmax(x):
"""
对输入x的每一行计算softmax。 该函数对于输入是向量(将向量视为单独的行)或者矩阵(M x N)均适用。 代码利用softmax函数的性质: softmax(x) = softmax(x + c) 参数:
x -- 一个N维向量,或者M x N维numpy矩阵. 返回值:
x -- 在函数内部处理后的x
"""
orig_shape = x.shape # 根据输入类型是矩阵还是向量分别计算softmax
if len(x.shape) > 1:
# 矩阵
tmp = np.max(x,axis=1) # 得到每行的最大值,用于缩放每行的元素,避免溢出。 shape为(x.shape[0],)
x -= tmp.reshape((x.shape[0],1)) # 利用性质缩放元素
x = np.exp(x) # 计算所有值的指数
tmp = np.sum(x, axis = 1) # 每行求和
x /= tmp.reshape((x.shape[0], 1)) # 求softmax
else:
# 向量
tmp = np.max(x) # 得到最大值
x -= tmp # 利用最大值缩放数据
x = np.exp(x) # 对所有元素求指数
tmp = np.sum(x) # 求元素和
x /= tmp # 求somftmax
return x x = np.array([[1,2,3],[4,7,6]])
print(softmax(x))
最新文章
- ASP.NET Web API 控制器创建过程(二)
- webAPI 数组参数
- Postgres-enum
- 使用yield关键字来提高性能
- paip.ikanalyzer 重加载词库的方法.
- Jmeter之HTTP Request Defaults
- Timus OJ 1997 Those are not the droids you're looking for (二分匹配)
- 成都Uber优步司机奖励政策(2月21日)
- crtmpserver通常使用基本类演示
- [SQL学习笔记][用exists代替全称量词 ]
- ffmpeg学习笔记
- ubuntu下C编程,编译基础( 转)
- C#对象赋值出现的诡异问题,或许你也遇到过,有待你的解决
- UIView 和 CALayer 的区别和联系
- 更方便的函数回调——Lambda
- 远程连接mysql 授权方法详解
- Swift3.0 创建工程常用的类、三方、以及扩展 1.5
- stm32开发之标准库的介绍
- 插入排序(JAVA实现)
- Mysql下Limit注入方法(此方法仅适用于5.0.0<;mysql<;5.6.6的版本)