pytorch 基础知识

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

手撸代码:https://zhuanlan.zhihu.com/p/666471085?utm_id=0

1.1dropout

在这里插入图片描述

1.2 pytorch中gather和scatter_区别

在这里插入图片描述

1.3 pytorch中torch.Tensor()和torch.tensor()的相同点和区别

在这里插入图片描述

1.4 pytorch中train和eval有什么不同

(1). model.train()——训练时候启用
启用 BatchNormalization 和 Dropout,将BatchNormalization和Dropout置为True
(2). model.eval()——验证和测试时候启用
不启用 BatchNormalization 和 Dropout,将BatchNormalization和Dropout置为False

train模式会计算梯度,eval模式不会计算梯度。

1.5 减小模型内存的方法?

模型剪枝、模型蒸馏、模型量化、模型结构优化

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

PyTorch 2.6

PyTorch 2.6

PyTorch
Cuda

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

### PyTorch基础教程入门指南 PyTorch 是一种功能强大的开源机器学习框架,广泛应用于深度学习领域。以下是关于 PyTorch基础知识及其核心概念。 #### 1. PyTorch 基本语法 PyTorch 提供了许多类似于 NumPy 的操作方法,但它支持 GPU 加速和自动求导机制。以下是一些基本操作: - **创建张量 (Tensor)** 张量是 PyTorch 中最基本的数据结构,可以看作多维数组。 ```python import torch # 创建一个全为1的2x2张量 x = torch.ones(2, 2) print(x) # 输出 [[1., 1.], [1., 1.]] ``` - **张量与 NumPy 数组之间的转换** PyTorch 支持无缝地将张量与 NumPy 数组互相转换[^3]。 ```python a = torch.ones(5) b = a.numpy() # 转换为NumPy数组 c = torch.from_numpy(b) # 将NumPy数组转回张量 ``` #### 2. 自动求导机制 (Autograd) PyTorch 的 `autograd` 模块能够实现动态计算图并自动生成梯度。这是构建和训练神经网络的关键特性之一[^1]。 - 设置 `requires_grad=True` 来跟踪张量的操作以便后续计算梯度。 ```python x = torch.ones(2, 2, requires_grad=True) y = x + 2 z = y * y * 3 out = z.mean() # 反向传播 out.backward() # 查看梯度 print(x.grad) # 输出梯度矩阵 ``` #### 3. 构建神经网络 在 PyTorch 中,可以通过继承 `nn.Module` 类来定义自己的神经网络架构。 - 定义简单的前馈神经网络: ```python import torch.nn as nn import torch.nn.functional as F class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.fc1 = nn.Linear(784, 128) # 输入层到隐藏层 self.fc2 = nn.Linear(128, 10) # 隐藏层到输出层 def forward(self, x): x = F.relu(self.fc1(x)) x = self.fc2(x) return x net = Net() print(net) ``` #### 4. 数据处理 PyTorch 提供了丰富的工具用于加载和预处理数据集。`torchvision.datasets` 模块包含了多个常用的真实世界数据集,例如 CIFAR、FashionMNIST 等[^4]。 - 下载 FashionMNIST 数据集: ```python from torchvision import datasets, transforms transform = transforms.ToTensor() training_data = datasets.FashionMNIST( root="data", train=True, download=True, transform=transform ) test_data = datasets.FashionMNIST( root="data", train=False, download=True, transform=transform ) ``` #### 5. 训练过程概述 完整的训练流程通常包括以下几个部分: - 初始化模型参数; - 定义损失函数(如交叉熵损失); - 使用优化器更新权重(如 SGD 或 Adam); - 进行多次迭代直到收敛。 ```python import torch.optim as optim criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(net.parameters(), lr=0.01) for epoch in range(10): # 多次遍历整个数据集... running_loss = 0.0 for i, data in enumerate(training_data, 0): inputs, labels = data optimizer.zero_grad() # 清零梯度缓存 outputs = net(inputs.view(-1, 784)) # 前向传递 loss = criterion(outputs, labels) # 计算损失 loss.backward() # 后向传递 optimizer.step() # 更新参数 running_loss += loss.item() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zack_Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值