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观察中间结果,加深对计算图的理解。

相关推荐
拾光向日葵3 分钟前
2026贵州高职专科报考全问答合集:专业、就业与实力大盘点
大数据·人工智能·物联网
لا معنى له4 分钟前
WAM与AC-WM:具身智能时代的世界动作模型与动作条件世界模型
人工智能·笔记·学习
乐观勇敢坚强的老彭13 分钟前
2026全国青少年信息素养大赛考纲
python·数学建模
uzong21 分钟前
AI Agent 是什么,如何理解它,未来挑战和思考
人工智能·后端·架构
2401_8955213423 分钟前
spring-ai 下载不了依赖spring-ai-openai-spring-boot-starter
java·人工智能·spring
冬奇Lab26 分钟前
从 Prompt 工程师到 Harness 工程师:AI 协作范式的三次进化
人工智能
jixinghuifu38 分钟前
理性权衡:手机系统更新,别盲目也别抗拒
人工智能·安全·智能手机
LJ979511141 分钟前
从被动救火到主动防御:Infoseek舆情监测系统的技术架构与实战拆解
人工智能
YMWM_1 小时前
【问题】thor上的cubLas
linux·python·thor