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

Day26_【深度学习(6)_神经网络NN(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/389043.html

相关文章:

  • 黑盒测试:测试用例设计之等价类设计方法(等价类划分:Equivalence Partitioning)有效等价类、无效等价类、边界值分析
  • 22 C++11 初始化新姿势:{} 统一初始化(省等号)+initializer_list 底层解析
  • 黑马头条_SpringCloud项目阶段二:FreeMarker组件以及MinIO系统集成
  • MySQL 数据库基础操作指南:从创建管理到备份恢复全解析
  • 【Java】-- rjvm 项目分析
  • Markdown 常用语法参考
  • 11.2.3 固定话题聊天实现
  • CAN(控制器局域网)工业协议教学文档(一)
  • PHP基础-变量与常量(第八天)
  • SQ01,SQ02,SQ03,SE93事务码配置
  • AI提示词Excel 表格提取数据准确度处理
  • DeviceNet 转 EtherNet/IP 实现罗克韦尔 PLC 与库卡机器人在汽车白车身焊接的微秒级数据同步协作案例
  • GPT-5 vs Gemini 2.5 Pro:两大AI旗舰模型深度技术对比
  • 31、GPT核心引擎完整手工构建:从算法原理到工程优化(Generative Pre-trained Transformer)
  • MySQL MHA 完整配置与故障后原主库还原指南
  • 栈-946.验证栈序列-力扣(LeetCode)
  • spring boot3.0整合rabbitmq3.13
  • Scrapy爬虫利器:CrawlSpider详解
  • 从零开始学Flink:数据源
  • GRPO算法复现
  • AI+Flask博客项目实战提示词笔记 20250918
  • 无人设备遥控器之时间戳技术篇
  • 模块四 展望微服务
  • RN 添加 <NavigationContainer>组件报错
  • 深入理解 AVL 树
  • 软考中级习题与解答——第八章_计算机网络(2)
  • FinalShell远程连接CentOS下方文件列表信息不显示且刷新报空指针异常
  • 贪心算法应用:线性规划贪心舍入问题详解
  • 设计模式学习笔记(二)
  • 轻量化录屏插件,MP4输出格式