常用pytorch函数

本文介绍了深度学习中常见的张量操作,包括unsqueeze用于在指定维度增加一个维度,squeeze用于删除尺寸为1的维度,permute用于维度交换,以及clip函数用于数值范围限制。这些操作在神经网络模型构建和训练中起到关键作用,确保数据处理的正确性和模型的稳定性。

unsqueeze(-1) 在最后一个维度增加一个维度,[2,3] ->[2,3,1]

squeeze(2) 在第二个维度减少一个维度(只有维度为1时才会真正被去掉) ,[2,1,3]->[2,3];如果是[2,2,3]在执行后还是[2,2,3]

permute(1,2,0) 交换维度,如[32,64,3]变为[64,3,32]

clip(0.,1.) 将数值限制在0.0到1.0之间,小于0.0的赋值为0.0,大于1.0的赋值为1.0 ,[-0.5,0.5,1.5]->[0.0,0.5,1.0]

detach 从计算图上分离下来,不更新

单下划线 _ :有时候单个独立下划线是用作一个名字,来表示某个变量是临时的或无关紧要的。

如也可以在拆分(unpacking)表达式中将单个下划线用作“不关心的”变量,以忽略特定的值。

car = ('red', 'auto', 12, 3812.4)    

 color, _, _, mileage = car     #来获取仅关心的颜色与里程数

<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() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值