Pytorch常用函数整理

本文详细介绍了PyTorch中的一些基本操作,包括torch.numel()用于计算tensor元素总数,torch.squeeze()和torch.unsqueeze()用于调整张量维度,torch.sort()进行排序,torch.mean()计算平均值,torch.gather()按指定维度和索引选取值,以及torch.stack()和torch.cat()的使用方法。
部署运行你感兴趣的模型镜像

1.torch.numel() 返回tensor变量内所有元素的个数,也可以简单理解为矩阵内yu元素的个数

   例如,a的size为([64, 3, 7, 7]),那么a.numel() 返回值为64*3*7*7=9408

2.torch.squeeze() 将输入张量形状中的1去除并返回,如果输入是形如(Ax1xBx1xCx1xD),那么输出形状就为(AxBxCxD)

3.torch.unsqueeze() 在指定维度上增加一个维度,该维度数为1

4.torch.sort() 返回元组,第一个是pa排序后的值,第二个是排序后的值在元数据中的index,如果不给dim,默认

按照最后一维

5.torch.mean() 如果不给维度,则fa返回所有值的均值

6.torch.gather(input, dim, index) 把输入按照给定的维度和index取input中的值

7.torch.stack(sequence,dim,out)  stack()会增加一个维度出来,sequence是tensor列表,dim表示拼接的维度,而torch.cat()是在已有的维度上拼接,

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

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、付费专栏及课程。

余额充值