算法面试准备 - 手撕系列第一期 - Softmax

news/2025/1/18 1:33:24/

算法面试准备 - 手撕系列第一期 - Softmax

目录

  • 算法面试准备 - 手撕系列第一期 - Softmax
    • Softmax原理图
    • Softmax实现代码 - 复杂版和简单版本(推荐简单版本)
    • 参考

Softmax原理图

在这里插入图片描述

Softmax原理图

Softmax实现代码 - 复杂版和简单版本(推荐简单版本)

  • 方法一:循环计算
import torchdef softmax(X): # X为Tensor向量,大小为(batch_size,len)# 方法一,复杂版本for i in range(X.size()[0]):# 取出某行的Tensor# 为了防止数据的上下,先把数据减去最大值X[i]-=max(X[i].clone())X[i]=torch.exp(X[i])X[i]/=X[i].sum()return Xif __name__=='__main__':X=[[i for i in range(4)] ,[j for j in range(1,5) ],[5,4,3,2]]X=torch.tensor(X,dtype=torch.float)print(softmax(X))
  • 方法二:广播利用torch函数
import torchdef softmax(X): # X为Tensor向量,大小为(batch_size,len)# 方法二:简单版本# 增加一步,防止数据上下溢出# (batch_size, 1)X_max,X_index=torch.max(X,dim=1,keepdim=True) # 让其保持二维X -= X_max# 取expX_exp = torch.exp(X)# 求和从1维求和得到的是(batch_size,1)X_sum=X_exp.sum(dim=1,keepdim=True)return X_exp/X_sumif __name__=='__main__':X=[[i for i in range(4)] ,[j for j in range(1,5) ],[5,4,3,2]]X=torch.tensor(X,dtype=torch.float)print(softmax(X))

参考

小红书资料:哲学专业转算法岗|手撕softmax - 小红书


http://www.ppmy.cn/news/1564026.html

相关文章

《汽车维护与修理》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答: 问:《汽车维护与修理》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《汽车维护与修理》级别? 答:国家级。主管单位:中国汽车维修行业协会 …

黑马linux笔记(03)在Linux上部署各类软件 MySQL5.7/8.0 Tomcat(JDK) Nginx RabbitMQ

文章目录 实战章节:在Linux上部署各类软件tar -zxvf各个选项的含义 为什么学习各类软件在Linux上的部署 一 MySQL数据库管理系统安装部署【简单】MySQL5.7版本在CentOS系统安装MySQL8.0版本在CentOS系统安装MySQL5.7版本在Ubuntu(WSL环境)系统…

【Linux】--- 进程的等待与替换

进程的等待与替换 一、进程等待1、进程等待的必要性2、获取子进程status3、进程等待的方法(1)wait()函数(2)waitpid函数 4、多进程创建以及等待的代码模型5、非阻塞接口 轮询 二、进程替换1、替换原理2、替…

SQL语言的计算机基础

以SQL语言的计算机基础为名 引言 在当今的信息化时代,数据被认为是新的石油,而处理和管理这些数据的能力已经成为一项至关重要的技能。关系型数据库管理系统(RDBMS)是存储和管理数据的主要方式,其中结构化查询语言&a…

工业视觉5-工业视觉选型

工业视觉5-工业视觉选型 任务分析三、知识准备问答四、相机选型五、总结 任务分析 重点明确任务要求 例子: 检测任务类型 外观检测:检查产品表面是否有划痕、污渍、缺陷等。例如,在电子元件生产中,需要检测芯片表面的瑕疵&…

Docker 部署 Typecho

1. 官网 https://typecho.org/插件 & 主题 https://github.com/typecho-fans/plugins https://typechx.com/ https://typecho.work/2. 通过 compose 文件安装 github官网: https://github.com/typecho/Dockerfile 新建一个目录,存放 typecho 的相…

如何使用Ultralytics训练自己的yolo5 yolo8 yolo10 yolo11等目标检测模型

Ultralytics正在以惊人的速度吸收优秀的CV算法,之前Ultralytics定位于YOLOV8,但逐渐地扩展到支持其他版本的YOLO,最新版本的ultralytics全面支持yolo5 yolo7 yolo8 yolo9 yolo10 yolo11,包含模型的训练、验证、预测、部署等。毫无…

Dubbo泛化调用

本文记录下利用dubbo泛化调用实现网关server收http请求,然后转发给dubbo服务,然后收到dubbo响应的功能原理。 关键点1:dubbo泛化调用。可根据(注册中心地址、接口名,方法名,参数类型)唯一确定一个dubbo服务…