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))

最新文章

  1. ASP.NET Web API 控制器创建过程(二)
  2. webAPI 数组参数
  3. Postgres-enum
  4. 使用yield关键字来提高性能
  5. paip.ikanalyzer 重加载词库的方法.
  6. Jmeter之HTTP Request Defaults
  7. Timus OJ 1997 Those are not the droids you're looking for (二分匹配)
  8. 成都Uber优步司机奖励政策(2月21日)
  9. crtmpserver通常使用基本类演示
  10. [SQL学习笔记][用exists代替全称量词 ]
  11. ffmpeg学习笔记
  12. ubuntu下C编程,编译基础( 转)
  13. C#对象赋值出现的诡异问题,或许你也遇到过,有待你的解决
  14. UIView 和 CALayer 的区别和联系
  15. 更方便的函数回调——Lambda
  16. 远程连接mysql 授权方法详解
  17. Swift3.0 创建工程常用的类、三方、以及扩展 1.5
  18. stm32开发之标准库的介绍
  19. 插入排序(JAVA实现)
  20. Mysql下Limit注入方法(此方法仅适用于5.0.0<mysql<5.6.6的版本)

热门文章

  1. sql2005 和sql2008 同时安装
  2. Spring框架annotation实现IOC介绍
  3. mysql 修改密码 开启远程访问权限
  4. 【线性基】51nod1312 最大异或和&LOJ114 k大异或和
  5. 折线统计(line)
  6. docke存储
  7. RSA DSA
  8. this.$router.push() 在新窗口怎么打开
  9. Scrapy安装报错 Microsoft Visual C++ 14.0 is required 解决办法
  10. group by having执行顺序