Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解

相关文章

Pytorch学习笔记(一):torch.cat()模块的详解
Pytorch学习笔记(二):nn.Conv2d()函数详解
Pytorch学习笔记(三):nn.BatchNorm2d()函数详解
Pytorch学习笔记(四):nn.MaxPool2d()函数详解
Pytorch学习笔记(五):nn.AdaptiveAvgPool2d()函数详解
Pytorch学习笔记(六):view()和nn.Linear()函数详解
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解


✅💖⚠️▶️➡️🌿🍀🍄🌟⭐❄️✅💖⚠️▶️➡️🌿🍀🍄🌟⭐❄️✅💖⚠️▶️➡️🌿🍀🍄🌟⭐❄️✅💖⚠️

1. 函数语法格式和作用💖

在深度学习的领域中,F.softmaxF.log_softmax是两个极为重要的函数,它们在数据处理和模型训练过程中发挥着关键的作用。

1.1 F.softmax 作用🌿

F.softmax函数主要用于将输入的数值转换为概率分布。它的核心操作是按照行或者列来进行归一化处理。在实际应用场景中,比如在多分类问题的神经网络输出层,模型会产生一系列的数值作为各个类别的得分。而F.softmax函数能够将这些得分转换为每个类别对应的概率值,使得所有类别的概率之和为 1。这样的处理方式使得模型的输出具有明确的概率意义,便于后续的决策和分析。例如,在图像分类任务中,模型可能会输出一个表示每个类别可能性的向量,通过F.softmax函数的处理,我们可以清晰地知道图像属于每个类别的概率大小,从而确定最有可能的分类结果。

1.2 F.softmax 函数语言格式🌿

# 0 是对列做归一化,1 是对行做归一化
F.softmax(x,dim=1) 或者 F.softmax(x,dim=0)

这里的x代表输入的张量,通常是模型的输出结果。dim参数用于指定归一化的维度。当dim = 1时,表示沿着行的方向进行归一化,即将每一行的数值转换为该行的概率分布。这种方式适用于处理每个样本有多个类别的情况,例如在一个批次的图像分类任务中,每个图像都有多个可能的类别,此时沿着行进行归一化可以得到每个图像属于各个类别的概率。而当dim = 0时,则是沿着列的方向进行归一化,常用于一些特定的矩阵运算或数据处理场景中,例如在对某些特征矩阵进行处理时,可能需要按照列来计算概率分布。

1.3 F.log_softmax 作用🌿

F.log_softmax函数在softmax的基础上进一步进行了运算。它在softmax的结果上再做多一次log运算。这一操作在深度学习中也具有重要的意义。在一些基于概率的损失函数计算中,例如交叉熵损失函数,使用F.log_softmax可以简化计算过程并提高数值稳定性。通过对softmax结果取对数,能够将乘法运算转换为加法运算,在计算梯度等过程中可以减少数值计算的复杂度和潜在的数值溢出问题。同时,在一些需要对概率分布进行进一步数学处理的场景中,F.log_softmax也提供了更方便的数值表示形式。

F.log_softmax 函数语言格式

F.log_softmax(x,dim=1) 或者 F.log_softmax(x,dim=0)

F.softmax函数类似,x为输入张量,dim参数同样用于指定操作的维度。无论是dim = 1对行进行操作还是dim = 0对列进行操作,其基本原理都是先进行softmax归一化,然后再对归一化后的结果取对数。这种一致的函数格式设计使得开发者在使用过程中能够方便地根据具体的需求和数据结构选择合适的维度进行计算,同时也便于在代码中进行统一的管理和维护。

总之,F.softmaxF.log_softmax函数在深度学习的模型训练和推理过程中是不可或缺的工具,深入理解它们的作用和语法格式对于构建高效、准确的神经网络模型至关重要。

2.参数解释💖

  • x指的是输入矩阵。

  • dim指的是归一化的方式,如果为0是对列做归一化,1是对行做归一化。

3.具体代码💖

import torch
import torch.nn.functional as F
logits = torch.rand(2,2)
pred = F.softmax(logits, dim=1)
pred1 = F.log_softmax(logits, dim=1)
print(logits)
print(pred)
print(pred1)

结果
在这里插入图片描述
✅💖⚠️▶️➡️🌿🍀🍄🌟⭐❄️✅💖⚠️▶️➡️🌿🍀🍄🌟⭐❄️✅💖⚠️▶️➡️🌿🍀🍄🌟⭐❄️✅💖⚠️
在这里插入图片描述

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZZY_dl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值