pytorch常用函数整理

部署运行你感兴趣的模型镜像

遇见一些常见的函数,经常想不起函数本身的形参包含什么或者某实参对应的是什么含义,所以干脆随手记录在这里了(不断更新)……
附上官方文档地址:https://pytorch.org/docs/stable/index.html

pytorch常用函数
# 卷积
torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)   
# 全连接层
torch.nn.Linear(in_features, out_features, bias=True)
# 平均/最大池化
torch.nn.functional.avg_pool2d(input, kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True)
torch.nn.functional.max_pool2d(input, kernel_size, stride=None, padding=0, dilation=1, ceil_mode=False, return_indices=False)
# 激活函数relu/leaky_relu
torch.nn.functional.relu(input, inplace=False)
torch.nn.functional.leaky_relu(input, negative_slope=0.01, inplace=False)
# dropout
torch.nn.functional.dropout2d(input, p=0.5, training=True, inplace=False)
# 交叉熵损失
torch.nn.functional.cross_entropy(input, target, weight=None, size_average=None, ignore_index=-100, reduce=None, reduction='mean')
# 插值/上采样
torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None)  

# 返回top k值及其index
torch.topk(input, k, dim=None, largest=True, sorted=True, out=None)
# 返回张量个数
torch.numel(input)
# 向下取整
torch.floor(input, out=None)
# 随机创建指定size的tensor
torch.Tensor(*sizes)
#用tensor2对tensor1逐元素相乘,并对结果乘以标量值value然后加到tensor
torch.addcmul(tensor, value=1, tensor1, tensor2, out=None)
# 将一个不可训练的tensor转换为可以训练的parameter
torch.nn.Parameter(torch.FloatTensor(hidden_size))
附录1: 以卷积层和池化层为例解释torch.nn和torch.nn.functional的区别
  • 卷积层中的卷积核含有需要通过训练不断学习、更新的variable,此种情况下需要使用torch.nn,即采用类的方式。
  • 对于池化层而言,当kernel_size、stride等确定之后,池化操作对应的是一个固定的运算了,即不存在variable,∴此种情况下直接使用torch.nn.functional即可。

以上仅为个人理解,如有不正之处还请指出。

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

<think>我们被要求提供深度学习常用PyTorch函数,并按照系统级指令进行格式化。根据引用[1]和引用[2],我们可以将常用函数分类整理。 引用[1]中已经提供了PyTorch常用函数的分类总结,包括张量操作、自动求导、神经网络构建、数据加载和优化器等模块。 我们将按照以下结构组织回答: 1. 张量操作(创建、属性、形状操作、索引切片、数学运算) 2. 自动求导 3. 神经网络构建(层、激活函数、损失函数) 4. 数据加载与处理 5. 优化器 6. 设备管理(CPU/GPU) 注意:所有数学表达式使用$...$格式,独立公式使用$$...$$格式。同时,在回答末尾生成相关问题。 由于引用[1]提供了详细的函数列表,我们将以此为基础进行扩展和说明。</think>### PyTorch 常用函数详解 PyTorch 是深度学习的核心框架之一,以下按功能分类总结常用函数(基于引用[1][^1]和引用[2][^2]): #### 1. 张量操作 **1.1 创建张量** - 基础创建: ```python torch.tensor([1, 2, 3]) # 从数据创建 torch.zeros((2, 3)) # 全零张量 torch.randn((2, 3)) # 标准正态分布张量 ``` - 特殊张量: ```python torch.arange(0, 10, 2) # 生成序列 [0,2,4,6,8] torch.linspace(0, 1, 5) # 等距向量 [0.0, 0.25, 0.5, 0.75, 1.0] ``` **1.2 张量运算** - 形状操作: ```python x.reshape(3, -1) # 重塑张量形状 torch.cat([x, y], dim=0) # 沿维度拼接 ``` - 数学运算: ```python torch.matmul(A, B) # 矩阵乘法 torch.exp(x) # 指数运算 x.mean(dim=1) # 沿维度求均值 ``` #### 2. 自动求导 ```python x = torch.tensor(2.0, requires_grad=True) y = x**2 + 3*x y.backward() # 自动计算梯度 print(x.grad) # 输出梯度值: 7.0 (因 $\frac{dy}{dx}=2x+3$) ``` #### 3. 神经网络构建 **3.1 网络层** ```python nn.Linear(784, 256) # 全连接层 nn.Conv2d(3, 16, kernel_size=3) # 卷积层 nn.LSTM(input_size=10, hidden_size=20) # LSTM层 ``` **3.2 激活函数与损失** ```python nn.ReLU() # ReLU激活 nn.CrossEntropyLoss() # 交叉熵损失 nn.MSELoss() # 均方误差损失 ``` #### 4. 数据加载 ```python from torch.utils.data import DataLoader loader = DataLoader(dataset, batch_size=32, shuffle=True) ``` #### 5. 优化器 ```python optim.SGD(model.parameters(), lr=0.01) # 随机梯度下降 optim.Adam(model.parameters(), lr=0.001) # Adam优化器 ``` #### 6. 设备管理 ```python device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model.to(device) # 模型转移到GPU ``` ### 典型应用示例 ```python # 简单神经网络训练流程 model = nn.Sequential( nn.Linear(784, 256), nn.ReLU(), nn.Linear(256, 10) ) optimizer = optim.Adam(model.parameters()) loss_fn = nn.CrossEntropyLoss() for x, y in dataloader: pred = model(x) loss = loss_fn(pred, y) loss.backward() optimizer.step() optimizer.zero_grad() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值