pytorch 常用API介绍

torch模块

torch.finfo/torch.iinfo

torch.finfo/torch.iinfo(type: dtype)

用途:获得某一dtype类型的位数、表示的最小数字、最大数字、最小正数
link: https://zhuanlan.zhihu.com/p/76870605

torch.chunk

torch.chunk(input, chunks, dim=0) → List of Tensors

• input: tensor
• chunks: 想切分成多少块
• dim: 对某一纬度进行切块
link: https://blog.csdn.net/weixin_30823833/article/details/96184248

torch.einsum

torch.einsum(equation: str, *operands: Tensor)

eg:dots = torch.einsum('bhid,bhjd->bhij', q, k) # 隐含语义:但bhi,bhj固定时,得到两个长度为d的向量,元素相乘,并对d长度求和
link:https://www.cnblogs.com/mengnan/p/10319701.html

torch.register_buffer

self.register_buffer(‘running_mean’, torch.zeros(num_features))

torch.ranperm

y = torch.randperm(n)
y是把1到n这些数随机打乱得到的一个数字序列。

在这里插入图片描述
link: https://blog.csdn.net/wangxinsheng0901/article/details/83002573

torch.Tensor模块

torch.Tensor.masked_fill/torch._ masked_fill_

torch.Tensor.masked_fill/torch._ masked_fill_(mask,
value)

用法:mask元素中为True的位置,替换为value
link: https://blog.csdn.net/qq_41568188/article/details/107281395

torch.nn模块

nn.GELU

link: https://mp.weixin.qq.com/s/pA9JW75p9J5e5KHe3ifcBQ

nn.LayerNorm

nn.LayerNorm(normalized_shape: Union[int, List[int], Size],
eps: float = 1e-5,
elementwise_affine: bool = True)

link: https://blog.csdn.net/liuxiao214/article/details/81037416

torch.nn.functional 模块

F.pad

F.pad(input, pad, mode=‘constant’, value=0)

• input
需要扩充的tensor,可以是图像数据,抑或是特征矩阵数据
• pad
扩充维度,用于预先定义出某维度上的扩充参数
• mode
扩充方法,’constant‘, ‘reflect’ or ‘replicate’三种模式,分别表示常量,反射,复制
• value
扩充时指定补充值,但是value只在mode='constant’有效,即使用value填充在扩充出的新维度位置,而在’reflect’和’replicate’模式下,value不可赋值
link: https://blog.csdn.net/binbinczsohu/article/details/106359426

基本知识

torchvision.transforms下的transform.py和functional.py的区别

torchvision.transforms这个包中包含resize、crop等常见的data augmentation操作,基本上PyTorch中的data augmentation操作都可以通过该接口实现。该包主要包含两个脚本:transforms.py和functional.py,前者定义了各种data augmentation的类,在每个类中通过调用functional.py中对应的函数完成data augmentation操作。
link: 添加链接描述

### 回答1: PyTorch 是一个基于 Python 的科学计算库,它是 TorchPython 语言上的衍生版本。它主要提供了以下 API: 1. torch.Tensor: PyTorch 中最核心的数据结构,即张量(Tensor)。它是一个具有动态图计算功能的多维数组,支持 GPU 计算、自动求导等功能。 2. torch.nn: PyTorch 中的神经网络模块,提供了丰富的网络层和损失函数等组件,方便用户搭建自己的神经网络模型。 3. torch.optim: PyTorch 中的优化器模块,提供了常见的优化算法,如 SGD、Adam 等,方便用户训练神经网络模型。 4. torch.utils.data: PyTorch 中的数据处理模块,提供了常用的数据处理工具,如 DataLoader、Dataset 等,可以方便地对数据进行处理和加载。 5. torch.autograd: PyTorch 中的自动求导模块,能够自动计算张量的梯度,方便用户进行反向传播计算。 6. torch.cuda: PyTorch 中的 GPU 加速模块,支持在 GPU 上进行张量计算,提高计算效率。 7. torch.onnx: PyTorch 中的模型导出模块,可以将 PyTorch 模型导出为 ONNX 格式,方便用户在其他框架中使用。 8. torchvision: PyTorch 中的图像处理模块,提供了常用的图像处理工具,如数据加载、预处理、可视化等。 ### 回答2: PyTorch是一个非常流行的深度学习框架,具有丰富的API,使得开发和训练神经网络变得更加简单和高效。下面是一些PyTorchAPI的简要介绍: 1. Tensor操作:PyTorch的核心是Tensor数据结构。它提供了各种用于创建、操作和变换Tensor的API函数。例如,torch.tensor函数可以从Python中的列表或数组创建Tensor对象,torch.zeros和torch.ones函数可以创建全零或全一的Tensor,torch.arange函数可以创建一个从给定范围开始到结束的Tensor。 2. 自动求导:PyTorch的autograd模块提供了自动求导的支持。它允许开发者定义和执行任意计算图,并自动计算任意张量相对于其他张量的梯度。只需要将需要计算梯度的张量设置为可追踪状态,PyTorch将会自动构建计算图并记录梯度信息。这可以用来方便地进行反向传播和参数更新。 3. 神经网络层:PyTorch提供了丰富的神经网络层API,包括线性层、卷积层、循环神经网络层等。用户可以根据自己的需要选择和组合这些层来构建神经网络模型。 4. 损失函数:PyTorch提供了常见的损失函数API,例如均方误差、交叉熵等。这些函数可以用来衡量模型的输出与标签之间的差异,并作为训练过程的目标函数。 5. 优化器:PyTorch提供了各种优化器API,例如随机梯度下降、Adam等。这些优化器可以用来更新模型的参数,以使目标函数最小化。 6. 数据加载和预处理:PyTorch提供了一系列用于加载和预处理数据的API函数。例如torchvision模块可以用于加载常见的计算机视觉数据集,torch.utils.data模块可以用于数据集的处理和批量加载。 总的来说,PyTorchAPI非常丰富和灵活,可以满足各种深度学习任务的需求,使得开发者可以更加自由地设计和实现自己的深度学习模型。 ### 回答3: PyTorch是一个广泛应用于深度学习领域的开源深度学习框架,它提供了丰富的API使得开发者能够快速构建、训练和部署深度学习模型。 PyTorchAPI提供了各种不同的模块和函数,使得用户能够以简洁的方式创建神经网络模型。一些最常用API包括torch.nn模块,该模块提供了各种不同的层和损失函数,如全连接层、卷积层、循环神经网络等。此外,torch.optim模块提供了各种优化算法,如随机梯度下降、动量优化等,用于训练模型。torch.utils.data模块则提供了用于数据加载和预处理的工具,如数据集类、数据加载器等。 PyTorchAPI还支持动态图机制,这使得用户能够方便地构建计算图并进行动态计算。这种动态图机制使得PyTorch在调试和开发过程中更加灵活,并且允许用户执行复杂的控制流操作。 此外,PyTorch还提供了许多其他有用的API,如torchvision提供了一些用于计算机视觉任务的预训练模型和数据集,torchtext提供了用于自然语言处理任务的数据处理工具等。 总而言之,PyTorchAPI非常丰富和灵活,使得用户可以根据自己的需求快速构建和训练深度学习模型。它的简洁性和易用性使得PyTorch成为许多研究者和开发者的首选框架之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值