《Pytorch深度学习实践》P9 多分类问题 笔记+代码+作业:Softmax原理、x.view()用法、mnist数据集分类代码、奥托集团产品分类挑战作业

 b站的up主刘二大人的《PyTorch深度学习实践》P9 笔记+代码,视频链接

所需Otto Group Product数据:


目录

一、Softmax

二、x.view()用法

三、CrossEntropyLoss <==> LogSoftmax + NLLLoss

四、mnist数据集分类代码(PPT中)

五、作业:奥托集团产品分类挑战


一、Softmax

1、定义:Softmax 函数是一种将原始分类分数(logits)转换为概率分布的激活函数,常用于多分类问题的输出层。

2、数学表达:给定一个向量z = [z_1, z_2, \ldots, z_K],Softmax 函数定义为:

P(y_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}} \quad (i = 1, 2, \ldots, K)

其中 P(y_i)是类别 i  的概率。

3、特性

  • 输出范围:Softmax 的输出值在 (0,1) 之间。
  • 归一化:所有输出值的和为 1,即 \sum_{i=1}^{K} P(y_i) = 1
  • 竞争性:输出值之间是相对的,某一类别的概率越高,其他类别的概率相对降低。

4、应用场景 多分类问题的神经网络最后一层,生成概率分布,用于分类任务。

5、梯度计算 Softmax 的梯度计算相对复杂,通常通过链式法则和雅可比矩阵进行推导。

6、优势与劣势

  • 优势:可以处理任意数量的分类,提供概率输出。
  • 劣势:对于极端分数(极大或极小),可能导致数值不稳定问题,常用技术如“减去最大值”以提高稳定性:

二、x.view()用法

1、介绍:x.view() 是 PyTorch 中用于改变张量形状的方法。它不改变张量的内容,只是改变视图。

2、基本用法:shape可以是一个整数或一个元组,指定新形状的维度。使用-1自动推断某个维度的大小。

# shape:新的形状,必须与原始张量的总元素数量相匹配。
x.view(shape)

3、使用示例:

import torch

# 创建一个张量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])

# 改变形状为一维
y = x.view(-1)  # 输出:tensor([1, 2, 3, 4, 5, 6])

# 改变形状为二维
z = x.view(3, 2)  # 输出:tensor([[1, 2], [3, 4], [5, 6]])

# 使用-1自动推算维度; 自动推算第二维度为2
z = x.view(3, -1)  #输出:tensor([[1, 2], [3, 4], [5, 6]])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值