PyTorch核心基础知识点(一)

一、基础工具与安装

  1. Python两大法宝函数
    • dir():快速查看模块结构,例如dir(torch)可查看PyTorch所有子模块
    • help():获取函数/类的详细说明,如help(torch.cuda.is_available)查看GPU检测方法
python 复制代码
   import torch
   print(dir(torch.optim))  # 查看优化器模块
  1. 安装PyTorch
    • CPU版本pip install torch torchvision
    • GPU版本:需额外安装CUDA驱动,官网生成对应命令
    • 验证安装:print(torch.__version__)torch.cuda.is_available()

二、核心数据结构:Tensor

  1. Tensor特性
    • 类似NumPy数组但支持GPU加速
    • 创建方式:torch.tensor(), torch.randn(), torch.zeros()
python 复制代码
   x = torch.rand(2,3)  # 创建2x3随机张量
  1. Tensor操作
    • 索引/切片:x[0,:]
    • 形状变换:x.view(3,2)x.reshape(3,2)
    • 设备切换:x.to ('cuda')实现GPU计算

三、数据处理与可视化

  1. Dataset与DataLoader
    • 自定义数据集需实现__len____getitem__
python 复制代码
   from torch.utils.data import Dataset
   class MyDataset(Dataset):
       def __getitem__(self, index): 
           # 返回单条数据
  1. TensorBoard可视化
    • 安装:pip install tensorboard
    • 基础使用:
python 复制代码
     writer = SummaryWriter('logs')
     writer.add_scalar('Loss', loss, epoch)  # 记录标量
     writer.add_image('Input', img_tensor)   # 记录图像[[3,7,10]]
  • 启动服务:tensorboard --logdir=logs --port=6006
  1. Transforms数据增强
    • 将PIL图像转为Tensor并进行归一化:
python 复制代码
     transform = transforms.Compose([
         transforms.Resize(256),
         transforms.ToTensor()  # 范围[0,1][[4,5]]
     ])

四、神经网络搭建

  1. 模型定义
    • 继承nn.Module并实现forward方法
python 复制代码
   class Net(nn.Module):
       def __init__(self):
           super().__init__()
           self.fc = nn.Linear(784, 10)
       def forward(self, x):
           return self.fc(x)
  1. 训练流程
python 复制代码
   optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
   criterion = nn.CrossEntropyLoss()
   
   for epoch in range(10):
       output = model(input)
       loss = criterion(output, target)
       optimizer.zero_grad()
       loss.backward()
       optimizer.step()  # 参数更新[[4,12,16]]

五、实战建议

  1. 学习路径

  2. 常见问题

    • GPU不可用:检查CUDA版本与PyTorch是否匹配
    • 维度错误 :使用tensor.shape检查维度,unsqueeze()/squeeze()调整

通过结合官方文档与实战项目(如FashionMNIST分类),可快速提升PyTorch应用能力。建议在学习过程中多用print()和TensorBoard观察中间结果,加深对计算图的理解。

相关推荐
摆烂大大王几秒前
玩转 OpenClaw:用 TaskFlow + Heartbeat 打造自动化工作流
前端·人工智能·自动化
zhangfeng11331 分钟前
AI 每日动态推送|2026-05-30 codidng 机器人方向
人工智能·机器人
zhangxingchao5 分钟前
AI 大模型核心六:量化、Workflow 与 Agent、多轮 RAG
前端·人工智能·后端
meilindehuzi_a8 分钟前
深入浅出数据结构:Python 字典(Dict)与集合(Set)的哈希表底层全链路追踪
数据结构·python·散列表
Lucas凉皮12 分钟前
20243408 2025-2026-2 《Python程序设计》综合实践报告
python·实验报告
陆业聪20 分钟前
WebView代理方案实现:拦截请求、注入资源与离线包架构
人工智能·ai编程
键盘上的猫头鹰23 分钟前
【MySQL 教程(八)】索引、事务、用户管理、导入导出与分页查询
数据库·python·mysql
薛定谔的猫-菜鸟程序员1 小时前
2小时智能体开发一个智能体?我用CodeArts Agent 和 AtomCode 开发了一个适老化智能体。
人工智能·python·agent
HIT_Weston1 小时前
101、【Agent】【OpenCode】task 工具提示词(Usage Notes)
人工智能·agent·opencode