Python实现softmax函数
Python 实现 函数 softmax
2023-09-11 14:17:47 时间
Python实现softmax函数 :
PS:为了避免求exp(x)出现溢出的情况,一般需要减去最大值。
import numpy as np
def softmax(x):
# 计算每行的最大值
row_max = np.max(x)
# 每行元素都需要减去对应的最大值,否则求exp(x)会溢出,导致inf情况
x = x - row_max
# 计算e的指数次幂
x_exp = np.exp(x)
x_sum = np.sum(x_exp)
s = x_exp / x_sum
return s
C++实现Softmax函数
template<typename _Tp>
int softmax(const _Tp* src, _Tp* dst, int length)
{
// double max = 0.0;
// double sum = 0.0;
//
// for (int i = 0; i<k; i++) if (max < x[i]) max = x[i];
// for (int i = 0; i<k; i++) {
// x[i] = exp(x[i] - max);
// sum += x[i];
// }
// for (int i = 0; i<k; i++) x[i] /= sum;
//为了避免溢出,需要减去最大值
const _Tp max_value = *std::max_element(src, src + length);
_Tp denominator{ 0 };
for (int i = 0; i < length; ++i) {
dst[i] = std::exp(src[i] - max_value);
denominator += dst[i];
}
for (int i = 0; i < length; ++i) {
dst[i] /= denominator;
}
return 0;
}
std::vector<float> output_vector;
std::vector<float> preds;
softmax(output_vector.data(), preds.data(),output_vector.size());
相关文章
- 【华为OD机试真题 python】信号发射和接收【2023 Q1 | 200分】
- python删除列表元素remove,pop,del
- Python-OpenCV中不用函数split()的实现图像多通道分离的方法——ndraary对象切片实现
- 10 python - 比较、关系运算符
- 《python 与数据挖掘 》一 2.6 上机实验
- Python和Sublime的整合
- 【Python】博客信息爬取-微信消息自动发送
- 《趣学Python编程》——第1部分 学习编程 第1章 Python不是大蟒蛇 1.1 关于计算机语言
- 基于Java+Python+MySQL实现的(Web)选题系统【100010569】
- 基于Python实现GA和SA求解函数优化问题及TSP问题【100010267】
- Python分享:学习Python后有哪些用途?
- Python网站导航项目-4.前端渲染模板
- (数据科学学习手札136)Python中基于joblib实现极简并行计算加速
- (数据科学学习手札23)决策树分类原理详解&Python与R实现
- ( Ubuntu系统下 ) vim插件安装 supertab 实现tab键的补全功能 (vim+python环境下)
- python 使用增强型赋值与使用普通赋值
- Python heapq实现大顶堆
- python模块
- Python 基础 之 python 协程知识点整理,并实现一个简单 gevent 的协程并发图片下载的应用
- Python 基础 之 python 进程知识点整理,实现一个简单使用进程池的多进程文件夹文件copy器
- Python实现基于最小二乘法的线性回归
- 【图像处理】——Python+opencv实现二值图像的轮廓边界跟踪以及轮廓面积周长的求解(findcontours函数和contourArea函数)
- Python算法:随机森林分类
- Java 调用Python+Opencv实现图片定位
- Python opencv-python 简单测试