softmax函数python实现
- 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))
softmax函数python实现的更多相关文章
- sigmoid 函数与 softmax 函数
sigmoid 函数与 softmax 函数 1. sigmoid 函数 sigmoid 函数又称:logistic函数,逻辑斯谛函数.其几何形状即为一条sigmoid曲线. lo ...
- [Machine Learning] logistic函数和softmax函数
简单总结一下机器学习最常见的两个函数,一个是logistic函数,另一个是softmax函数,若有不足之处,希望大家可以帮忙指正.本文首先分别介绍logistic函数和softmax函数的定义和应用, ...
- 函数:Python的乐高积木 - 零基础入门学习Python017
函数:Python的乐高积木 让编程改变世界 Change the world by program 相信大家小时候应该都玩过神奇的乐高积木,只要通过想象和创意,我们可以用它拼凑出很多神奇的东西. 随 ...
- softmax函数详解
答案来自专栏:机器学习算法与自然语言处理 详解softmax函数以及相关求导过程 这几天学习了一下softmax激活函数,以及它的梯度求导过程,整理一下便于分享和交流. softmax函数 softm ...
- tensorflow 使用 5 mnist 数据集, softmax 函数
用于分类 softmax 函数 手写数据识别:
- Softmax函数详解与推导
一.softmax函数 softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类! 假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个 ...
- 匿名函数python内置高阶函数以及递归
匿名函数 python定义一个函数通常使用def关键词,后面跟函数名,然后是注释.代码块等. def func(): '''注释''' print('from func') 这样就在全局命名空间定义了 ...
- [机器学习入门篇]-Logistic函数与Softmax函数
1.Logistic函数 在维基百科中,对logistic函数这样介绍道: A logistic function or logistic curve is a common "S" ...
- 层次softmax函数(hierarchical softmax)
一.h-softmax 在面对label众多的分类问题时,fastText设计了一种hierarchical softmax函数.使其具有以下优势: (1)适合大型数据+高效的训练速度:能够训练模型“ ...
随机推荐
- Anaconda的用法
1. conda list -----显示anacoda安装的模块 2.jupyter notebook----启动网页上的python编程环境 3.anacoda search -t conda ...
- c++树及树与二叉树的转换
此算法中的树结构为“左儿子有兄弟链接结构” 在这样的一个二叉树中,一个节点的左分支是他的大儿子节点,右分支为他的大兄弟节点. 这里讲的树有递归前根,中根,后根遍历,插入节点,插入兄弟节点,查找结点,释 ...
- caffe+Ubuntu14.04.10 +cuda7.0/7.5+CuDNNv4 安装
特别说明: Caffe 官网地址:http://caffe.berkeleyvision.org/ 本文为作者亲自实验完成,但仅限用于学术交流使用,使用本指南造成的任何不良后果由使用者自行承担,与本文 ...
- Python之数据结构:字符串中的方法
一.过滤字符串 1.strip() (1)去掉行收尾不可见字符 a = ' wejifrow ' print a print a.strip() 结果: wejifrow wejifrow (2)st ...
- Python与其他语言时间戳
时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)以来的秒数.它也被称为 Unix 时间戳(Unix Timestamp). Unix时间戳(Unix timestamp),或称Un ...
- HDU 4779:Tower Defense
Tower Defense Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others)T ...
- Codevs 1315 摆花
1315 摆花 2012年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 小明的花店新开张,为了吸引顾客,他 ...
- 【BZOJ4300】绝世好题(二进制,DP)
题意: n<=100000,ai<=2*10^9 思路:按二进制逐位考虑,只要有至少1位取and后为1就可以接下去 设dp[i]为第i位取and之后为1的最长的序列长度,意会一下 #inc ...
- mongoDB最新版安装
转载自:http://www.higis.org/2012/04/25/ubuntu-install-mongodb/ ubuntu上安装mongodb本可以直接通过sudo apt-get inst ...
- 十步优化SQL Server中的数据访问
原文发布时间为:2011-02-24 -- 来源于本人的百度文章 [由搬家工具导入] 转载:http://tech.it168.com/a2009/1125/814/000000814758_all. ...