当前位置: 首页 > news >正文

Day26_【深度学习(6)_神经网络NN(1.1)激活函数_softmax详解篇】

一、什么是 dim 参数?

在 PyTorch 的 softmax 函数中,dim 参数指定了对输入张量(tensor)的哪个维度应用 softmax 计算。

  • dim=0:表示沿着第 0 维度(行方向)进行 softmax 计算。
  • dim=-1:表示沿着最后一个维度(对于一维张量来说就是唯一的一个维度)进行 softmax 计算。
scores = torch.tensor([0.2, 0.02, 0.15, 0.15, 1.3, 0.5, 0.06, 1.1, 0.05, 3.75])  #(10,)
probabilities = torch.softmax(scores, dim=0)  #或者dim=-1
print(probabilities)

❌ 错误理解

你可能认为:

  • dim=0 和 dim=-1 在这里是一样的效果。

但实际上,对于一个一维张量(如 [0.2, 0.02, ...]),dim=0dim=-1 确实是等价的,因为它们都指向唯一的那个维度。

✅ 正确理解:多维张量的情况

当输入是一个多维张量时,dim 参数的作用就变得明显了。

例如:

# 二维张量示例
scores_2d = torch.tensor([[0.2, 0.02, 0.15],[0.15, 1.3, 0.5],[0.06, 1.1, 0.05],[3.75, 0.2, 0.02]
])# dim=0: 沿着行方向计算 softmax
probabilities_row = torch.softmax(scores_2d, dim=0)# dim=1 或 dim=-1: 沿着列方向计算 softmax
probabilities_col = torch.softmax(scores_2d, dim=1)
 dim=0 的效果
# probabilities_row 结果类似于:
tensor([[0.0849, 0.0005, 0.0849],[0.0849, 0.9995, 0.5762],[0.0849, 0.0000, 0.0849],[0.7453, 0.0000, 0.2540]])
  • 对每一列分别计算 softmax,使得每列的和为 1。
🔹 dim=1 或 dim=-1 的效果
# probabilities_col 结果类似于:
tensor([[0.4750, 0.0020, 0.5230],[0.0321, 0.9955, 0.0024],[0.0045, 0.9955, 0.0000],[0.9999, 0.0005, 0.0000]])
  • 对每一行分别计算 softmax,使得每行的和为 1。
参数作用
dim=0沿着第 0 维度(行方向)计算 每列softmax,适用于多维张量
dim=-1沿着最后一个维度计算 softmax,对于一维张量与 dim=0 等效,但对多维张量则按列计算

 二、浓缩小结

1.首先dim=-1是指右数第一个维度

2.首先看这个张量的shape

  • (10,) 一维 ,那么dim=0和-1都是指这一个维度
  • (3,2) 二维,即第0维和第1维,那么dim=0和dim=-1是不同的,这里的dim=-1是指第1维

3.softmax(dim)

  • softmax(scores,dim=0)是按行计算每列的softmax值,所以每列的值(也就是概率)相加为1
  • 同样softmax(scores,dim=1)是按列计算每行的softmax值,所以每行的值(也就是概率)相加为1

三、实际应用建议

        直接使用dim=-1

http://www.dtcms.com/a/389811.html

相关文章:

  • 通过调用deepseek大模型接口对千条评论信息进行文本分析/词频分析/情感分析
  • 攻坚家电代工转型痛点|远望电器牵手盘古信息,以IMS重塑数字制造根基
  • SpringBoot实现Markdown语法转HTML标签
  • DeepSeek:大语言模型在中文生态中的技术突破与应用探索
  • 【Agent博客分享】从多Agent问题到新的上下文工程方法
  • 点云分割中 offset 与 batch 表示的转换详解
  • C++23 堆栈跟踪功能实战:从内存泄漏梦魇到一键定位的调试革命
  • jvm参数调优(持续更新)
  • 容器查看日志工具-stern
  • 衍射光学元件DOE:台阶高度与位置误差的测量
  • Java中对象/嵌套对象属性复制工具类使用示例:Hutools工具类BeanUtils使用示例
  • rust编写web服务02-路由与请求处理
  • Spring Cloud - 微服务限流的方式
  • 【智能系统项目开发与学习记录】ROS2基础(1)
  • 人工智能面试题:什么是CRF条件随机场
  • [x-cmd] 命令式交互、CLI/TUI 设计与 LLM
  • 基于AMBA总线协议的Verilog语言模型实现
  • 【Agent项目复现】OpenManus复现
  • 高校AI虚拟仿真实训平台软件解决方案
  • Vue3 + Ant Design Vue 实现统一禁用样式管理方案,禁用状态下已有值颜色区分(CSS 变量方案)
  • Ubuntu 24.04部署MongoDB
  • 8.1-spring 事务-声明式事务(使用)
  • Vue3》》组件继承 extends
  • 无人系统在边境管控的应用探讨
  • 一个典型的mysql数据库连接池初始化函数
  • novel英文单词学习
  • 数据结构:树及二叉树--堆(下)
  • TDengine 聚合函数 STDDEV 用户手册
  • ARM--启动代码
  • openharmony1.1.3 通过i2c进行温湿度采集