【“Transformers快速入门”学习笔记8】学习中遇到的一些方法和关键字

1. logits

在深度学习中,特别是在神经网络模型中,logits 是指模型最后一层的输出,通常是未经过激活函数的原始预测值或得分。在分类任务中,logits 是模型在每个类别上的得分,这些得分尚未经过 softmax 或 sigmoid 函数转换为概率。通常是一个(batch_size, 2)张量。

nn.ReLu()

PyTorch 中的激活函数模块,用于在神经网络的每一层后引入非线性变换。
ReLU 是指修正线性单元(Rectified Linear Unit),它将所有负值的输入设置为零,而正值则保持不变:[ \text{ReLU}(x) = \max(0, x) ]
ReLU 激活函数有助于网络学习非线性关系,使得网络可以更好地拟合复杂的数据模式。

nn.Linear()

PyTorch 中用于定义线性变换的模块,它表示网络中的全连接层或线性层。
在神经网络中,线性层将输入张量与权重矩阵相乘,并添加偏置项,生成一个输出张量:[ \text{output} = \text{input} \times \text{weight} + \text{bias} ]
nn.Linear(in_features, out_features) 的构造函数接受两个参数:in_features 表示输入特征的数量,out_features 表示输出特征的数量。
例如,nn.Linear(768, 2) 表示一个线性层,它将输入大小为 768 的张量转换为输出大小为 2 的张量,适用于二分类问题。

nn.Dropout()

PyTorch 中用于在训练过程中随机丢弃输入张量中的一些元素的模块,以减少过拟合风险。
Dropout 在训练时,以指定的丢弃概率(通常在 0.1 到 0.5 之间)随机将输入张量的部分元素置零,并按比例缩放剩余元素:[ \text{output} = \frac{\text{input} \times \text{mask}}{1 - \text{p}} ] 其中 p 是丢弃概率,mask 是二元掩码张量,其形状与输入张量相同。
Dropout 有助于防止神经网络对某些输入特征过度依赖,从而提高模型的泛化能力。
在 PyTorch 中,通过 nn.Dropout§ 来创建一个 Dropout 层,其中 p 是丢弃概率。

flatten()

将输入的多维张量(如二维矩阵或更高维的张量)转换为一维向量的操作。这个操作在神经网络中经常用于连接多个层或将卷积层的输出展平后输入全连接层。

import torch
import torch.nn as nn

# 创建一个模块包含 Flatten 操作
flatten = nn.Flatten()

# 假设输入张量是 [batch_size, channels, height, width]
input_tensor = torch.randn(10, 3, 28, 28)

# 应用 Flatten 操作
flattened = flatten(input_tensor)

# flattened 的形状现在是 [10, 2352],即 batch_size * (channels * height * width)

这里 nn.Flatten() 会将大小为 [batch_size, channels, height, width] 的张量转换为大小为 [batch_size, channels * height * width] 的张量。

flattened = torch.flatten(input_tensor, start_dim=1)

这个函数可以指定展平的起始维度和结束维度。这里的 start_dim=1 表示从第二个维度(即 channels 维度)开始展平,将其后的所有维度都展平为一维。

argmax()

用于找到使给定函数取最大值的参数值。

item()

从包含单个元素的张量(tensor)中提取 Python 标量值。具体来说,它用于将包含单个值的 PyTorch 张量转换为 Python 原生的标量类型(如整数、浮点数等)。

eval()

将模型切换到评估(evaluation)模式。这个方法通常在测试模型、验证模型或者推理阶段使用。
model.eval() 方法会将 Batch Normalization 层和 Dropout 层设置为评估模式,这意味着它们将采用预定义的统计数据(如均值和方差)而不是根据当前输入的统计数据进行调整。因此,Batch Normalization 层将使用训练阶段累积的移动平均统计量,而 Dropout 层将停用一些单元以减少过拟合。
在评估模式下,model.eval() 会禁用 Dropout 层,这意味着所有单元将保持激活状态,因此输出将不再随机丢弃节点。
Batch Normalization 层在评估模式下会使用训练阶段累积的移动平均值和方差来标准化输入数据,而不是使用当前 mini-batch 的均值和方差。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值