PyTorch 中常用的函数方法


PyTorch是一个广泛使用的深度学习框架,它提供了丰富的函数和方法来处理张量、构建和训练神经网络。以下是一些PyTorch中常用的函数和方法:

一、张量操作

  1. 创建张量

    • torch.tensor(): 从数据(如列表或NumPy数组)创建张量。
    • torch.full(): 用指定值填充指定大小的张量。
    • torch.zeros(): 创建全零张量。
    • torch.ones(): 创建全一张量。
    • torch.randn(): 创建符合标准正态分布的随机张量。
  2. 张量形状和维度变换

    • view(): 改变张量的形状,不改变其数据。
    • t(): 对二维张量进行转置。
    • permute(): 重新排列张量的维度。
    • unsqueeze(): 增加张量的维度。
    • squeeze(): 去除张量中维度为1的维度。
    • transpose(): 交换张量的两个维度。
  3. 张量连接和分割

    • cat(): 沿指定维度连接张量。
    • stack(): 沿新维度连接张量。
    • chunk(): 将张量均匀分割成若干小块。
    • split(): 根据给定的分割大小或索引列表分割张量。
  4. 索引和切片

    • 使用索引和切片操作来访问张量的元素或子张量。
  5. 数学运算

    • 张量支持基本的数学运算,如加法、减法、乘法、除法等。
    • torch.sum(): 计算张量的元素和。
    • torch.mean(): 计算张量的平均值。
    • torch.max(): 返回张量中的最大值及其索引。
    • torch.min(): 返回张量中的最小值及其索引。
    • torch.topk(): 返回张量中指定维度上前k个最大的元素。

二、神经网络构建和训练

  1. 参数初始化

    • 使用nn.init模块中的函数(如normal_)来初始化神经网络的参数。
  2. 激活函数

    • ReLU(): 线性整流函数。
    • sigmoid(): S型函数,将输入映射到(0,1)之间。
    • tanh(): 双曲正切函数,将输入映射到(-1,1)之间。
  3. 损失函数

    • nn.MSELoss(): 均方误差损失。
    • nn.CrossEntropyLoss(): 交叉熵损失,常用于分类任务。
    • nn.CTCLoss(): 连接时序分类损失,用于处理序列数据。
  4. 优化器

    • optim.SGD(): 随机梯度下降优化器。
    • optim.Adam(): Adam优化器,一种基于一阶和二阶矩估计的自适应学习率优化算法。
  5. 训练过程

    • 使用model.train()model.eval()来切换模型的训练模式和评估模式。
    • 使用optimizer.zero_grad()来清除之前的梯度。
    • 使用loss.backward()来计算损失函数的梯度。
    • 使用optimizer.step()来更新模型的参数。
  6. 数据加载和预处理

    • 使用torchvision.transforms模块中的函数(如ToTensor()Normalize()等)来预处理图像数据。
    • 使用DataLoader来加载数据集,支持批量处理、打乱数据顺序等功能。

三、其他常用函数和方法

  1. 设备管理

    • torch.device(): 指定张量或模型所在的设备(CPU或GPU)。
    • torch.cuda.is_available(): 检查CUDA是否可用。
  2. 随机数和种子

    • torch.manual_seed(seed): 为CPU设置随机数种子。
    • torch.cuda.manual_seed_all(seed): 为所有GPU设置随机数种子。
  3. 梯度管理

    • tensor.detach(): 返回一个从当前计算图中分离的新张量,不再需要计算梯度。
    • tensor.requires_grad_(): 就地设置张量是否需要计算梯度。
    • with torch.no_grad(): 临时禁用梯度计算,用于推理或评估模式。
  4. 模型保存和加载

    • 使用torch.save()torch.load()来保存和加载模型参数。

PyTorch的函数和方法非常丰富,上述列举的只是一些常用的部分。在实际应用中,根据具体需求选择合适的函数和方法是非常重要的。

示例代码

一、张量操作

import torch


print("----------创建张量----------")

# 从列表创建张量
tensor_from_list 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值