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

server/2025/1/23 12:22:51/

算法面试准备 - 手撕系列第一期 - 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/server/160731.html

相关文章

分支与循环(下)

goto语句 C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数内跳转到设置好的标号处。 适用场景 跳出多层循环:在处理多层嵌套循环时,如果需要在满足某个条件时从内层循环直接跳出到外层…

MyBatis最佳实践:SQL注入问题

什么是 SQL 注入: SQL 注入是一种注入攻击,可以执行恶意 SQL 语句,它将任意 SQL 代码插入数据库查询,使攻击者能够完全控制 WEB 应用程序后面的数据库服务器,攻击者可以使用 SQL 注入漏洞绕过程序安全措施可以绕过网页…

解码策略(Top-k Top-p Temperature)

0.简介 在大模型训练好之后,如何对训练好的模型进行解码(decode)是一个火热的研究话题。 一般给模型传入的解码参数如下所示。 {"top_k": 10,"temperature": 0.95,"num_beams": 1,"top_p": 0.8,

基于微信小程序的驾校预约小程序

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

计算机视觉算法实战——实体物体跟踪

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​​​​​ ​ 1. 领域介绍✨✨ 实体物体跟踪(Object Tracking)是计算机视觉领域中的一个重要研究方向&#x…

PyTorch使用教程(11)-cuda的使用方法

1. 基本概念 CUDA(Compute Unified Device Architecture)是NVIDIA开发的一种并行计算平台和编程模型,专为图形处理器(GPU)设计,旨在加速科学计算、工程计算和机器学习等领域的高性能计算任务。CUDA允许开发…

Kafka中bin目录下面kafka-run-class.sh脚本中的JAVA_HOME

在Kafka中,bin目录下面的kafka-run-class.sh脚本中关于JAVA_HOME的脚本如下: # Which java to use if [ -z "$JAVA_HOME" ]; thenJAVA"java" elseJAVA"$JAVA_HOME/bin/java" fi 这段脚本是关于决定在执行 Kafka 时应该使…

HTML 基础入门:核心标签全解析

在网页开发的世界里,HTML(超文本标记语言)是基石般的存在。它负责构建网页的基本结构,为用户呈现出丰富多样的内容。今天,就让我们一起深入了解 HTML 中几个极为关键的基础标签,开启网页创作的第一步。 一…