趣解PyTorch:带你从小白到实战的入门指南

PyTorch入门:从安装到实战全指南 PyTorch深度学习框架:从基础到部署全流程解析 本文系统介绍了PyTorch深度学习框架的核心技术栈,涵盖基础操作、模型优化、部署生产等全流程关键环节。主要内容包括: 基础框架 安装配置指南:Stable与Preview版本选择、CUDA支持要求 核心数据结构:Tensor操作、自动微分机制 模型构建:nn.Module体系与动态计算图 关键技术 混合精度训练:AMP自动管理FP16/FP32转换 分布式训练:DataParallel/DDP实现多GPU并行 弹性训练:TorchElastic故障恢复机 阅读详情

认识PyTorch

通俗点说:

PyTorch 是一个用 Python 写深度学习模型的工具,就像乐高积木一样,简单好拼,灵活好玩。

它是 Facebook AI 开发的,后来开源火了,很多科研人员和开发者都在用。

如果你想做 AI 项目、深度学习、NLP、CV,PyTorch 几乎是第一推荐。
在这里插入图片描述

核心概念

1. Tensor(张量)

和 TensorFlow 一样,PyTorch 的核心数据结构叫 Tensor,就是高维数组:

import torch

x = torch.tensor([1.0, 2.0, 3.0])  # 一维张量(向量)
m = torch.tensor([[1, 2], [3, 4]])  # 二维张量(矩阵)

你可以像操作 Numpy 一样操作它:加法、乘法、矩阵运算都支持。

2. Autograd(自动求导)

PyTorch 最大的亮点就是:自动帮你算导数!

只要你告诉它哪些变量需要“求导”,它就能帮你自动追踪梯度,也即是导数:

x = torch.tensor([1.0, 2.0], requires_grad=True)
y = x ** 2 + 3 * x
z = y.sum()
z.backward()  # 反向传播
print(x.grad)  # 输出梯度


#输出为
#tensor([5., 7.])
#可以看到在x=1和x=2这两个点上的变化快慢。

3. Module(模块)和 nn(神经网络)

PyTorch 提供了 torch.nn 这个模块,里面封装了一堆搭建神经网络的积木。
例子:定义一个模型,给它一张图(展开成 784(28*28)个数字),它就会告诉你这张图最可能是哪个数字(输出 10 个概率值)。中间它做了两步计算:先提取一些特征(用 ReLU 激活),再把这些特征判断成 10 个数字中的哪一个,并给出概率,看代码:

import torch.nn as nn #引入 PyTorch 提供的神经网络工具箱,这个工具箱里有各种组件(比如线性层、激活函数等)。
model = nn.Sequential(
    nn.Linear(784, 128),# 输入层: 784个特征(如28x28像素图像),压缩成128个特征值
    nn.ReLU(),# 激活函数
    nn.Linear(128, 10),# 输出层: 把前面的128个特征变成10个类别
    nn.Softmax(dim=1) # 输出概率分布
)

4. Optimizer(优化器)

PyTorch 里常用的优化器是 SGD、Adam,使用方法如下:

#设置 Adam 优化器,学习率为 0.001,用于训练模型参数。
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

5. Dataset & DataLoader

Dataset 就是你自定义的数据集,DataLoader 可以一批一批地送数据给模型:

from torch.utils.data import DataLoader, TensorDataset

data = torch.randn(100, 784)# 生成100个784维的随机数据样本 (模拟MNIST数据集中的28x28图像)
labels = torch.randint(0, 10, (100,))# 生成100个随机标签,范围0-9 (10分类问题)
dataset = TensorDataset(data, labels)# 将数据和标签封装成TensorDataset
dataloader = DataLoader(dataset, batch_size=32, shuffle=True)# 创建DataLoader,设置批次大小为32,并启用数据随机打乱

如何安装

建议到官网选择对应系统和 CUDA 版本安装:https://pytorch.org/get-started/locally/

快速方式(CPU 版本):

pip install torch torchvision

常见用例

训练一个神经网络识别 MNIST

import torch
import torch.nn as nn
import torch.nn.functional as F
import torchvision
import torchvision.transforms as transforms

# 数据预处理
transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.5,), (0.5,))
])

trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True)

testset = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=64, shuffle=False)

# 定义模型
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(28*28, 128)
        self.fc2 = nn.Linear(128, 10)

    def forward(self, x):
        x = x.view(-1, 28*28)
        x = F.relu(self.fc1(x))
        x = self.fc2(x)
        return x

model = Net()

# 损失函数和优化器
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

# 训练模型
for epoch in range(5):
    for images, labels in trainloader:
        outputs = model(images)
        loss = criterion(outputs, labels)

        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
    print(f"第 {epoch+1} 轮训练完成")

模型保存与加载

# 保存模型
torch.save(model.state_dict(), 'model.pth')

# 加载模型
model = Net()
model.load_state_dict(torch.load('model.pth'))
model.eval()  # 切换为评估模式

在 GPU 上训练

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model.to(device)

for images, labels in trainloader:
    images, labels = images.to(device), labels.to(device)
    ...

PyTorch vs TensorFlow

项目PyTorchTensorFlow
是否动态图默认动态图2.x后支持动态图
代码简洁程度更符合 Python 思维较复杂
社区支持学术界主流工业界主流
上手难度易上手需要熟悉 Keras
调试方便Pythonic 调试静态图调试麻烦

学 PyTorch 的建议

  1. Python 和 Numpy 要熟练
  2. 先模仿官方教程,再改代码玩
  3. 用 Jupyter Notebook 多练习
  4. 看清每一层输出的 shape,防止出错
  5. 多画图理解网络结构,多写多练!

推荐学习资源

最后的话

PyTorch 真的是目前最简单、好用、灵活的深度学习框架,尤其适合新手和研究人员。
你能理解它的基本逻辑,再配合一些数学原理和神经网络结构,基本就能做很多有趣的 AI 项目了。

Pytorch深度学习入门与实战 PyTorch是一个开源机器学习Python库,用于深度学习实现,如计算机视觉(使用武器)和自然语言处理。它是由Facebook的AI Research Lab(Fair)于2016年开发的,自数据科学和ML领域以来已采用。Pytorch为已经熟悉Python的人提供了直观的机器,并且具有oop支持和动态计算图等具有很大的功能。除了构建深度神经网络之外,由于其GPU加速,Pytorch也非常适合复杂的数学计算。此功能允许Pytorch使用计算机的GPU来大量加速计算。 阅读详情

相关推荐

Pytorch:入门指南和 PyTorch 的 GPU版本安装(非常详细)

介绍了该教程的入门指南,环境配置参考,开发工具推荐,详细讲解了PyTorch的GPU版本安装方式,以及如何使用 GPU 。

Jingmin Wei's Blog 4143

Pytorch 入门

我们首先定义一个Pytorch实现的神经网络#导入若干工具包importtorchimporttorch.nnasnnimporttorch.nn.functionalasF#定义一个简单的网络类classNet(nn.Module)模型中所有的可训练参数,可以通过net.parameters()来获得.假设图像的输入尺寸为32*32input=torch.randn(1,1,32,32)#4个维度依次为注意维度。...

mengxianglong123的博客 1万+

Pytorch入门教程

Pytorch学习总结:1.张量Tensor 张量是一种特殊的数据结构,与数组和矩阵非常相似。在PyTorch中,我们使用张量对模型的输入和输出以及模型的参数进行编码。 张量类似于NumPy的ndarray,除了张量可以在 GPU 或其他硬件加速器上运行。事实上,张量和NumPy数组通常可以共享相同的底层内存,从而无需复制数据。...

专注大数据与人工智能技术分享,欢迎私信加群互相学习! 4万+

Pytorch小白入门

这是我在b站上发现的比较好的教程,在听的过程中作了写笔记,特此与大家共勉。

David_Wang__的博客 407

Pytorch入门+实战系列五:Pytorch情感分类

Pytorch官方文档:https://pytorch.org/docs/stable/torch.html? 1. 写在前面 今天开始,兼顾Pytorch学习, 如果刚刚接触深度学习并且想快速搭建神经网络完成任务享受快感,当然是Keras框架首选,但是如果想在深度学习或人工智能这条路上走的更远,只有Keras就显得有点独木难支,这时候我们需要一个更加强大的框架,这里我想学习Pytorch,它代码通俗易懂,接近Python原生,学起来也容易一些,所以接下来会整理自己在快速入门Pytorch道路上的所见所得,

Miracle8070 9489

Pytorch入门+实战系列一:Windows下的Pytorch环境手把手搭建

1. 写在前面 今天开始,兼顾Pytorch学习, 如果刚刚接触深度学习并且想快速搭建神经网络完成任务享受快感,当然是Keras框架首选,但是如果想在深度学习或人工智能这条路上走的更远,只有Keras就显得有点独木难支,这时候我们需要一个更加强大的框架,这里我想学习Pytorch,它代码通俗易懂,接近Python原生,学起来也容易一些,所以接下来会整理自己在快速入门Pytorch道路上的所见所得,...

Miracle8070 9178

小白入门PyTorch | 第一篇:什么是PyTorch?

什么是PyTorch? 这是一个基于Python的科学计算包,主要分入如下2部分: 使用GPU的功能代替numpy 一个深刻的学习研究平台,提供最大的灵活性和速度 开始学习 Tensors (张量) Tensors类似于numpy的ndarrays,另外还可以在GPU上使用Tensors来加速计算。 from __future__ import print_function import torch 构造一个5x3矩阵,不初始化。 x = torch.empty(5, 3) print(x) ten

“365天深度学习训练营”报名进行中~ 1064

2024年捡垃圾指南:E5 V3/V4服务器CPU怎么选?从游戏多开到深度学习,附华南X99主板搭配清单

本文详细解析2024年E5 V3/V4服务器CPU的选购策略,涵盖游戏多开、深度学习等多种应用场景。通过对比E5 V3与V4系列的制程、功耗及性能差异,提供高性价比的CPU型号推荐及华南X99主板搭配方案,帮助用户在有限预算下打造高效能工作站。

weixin_42549451的博客 1579

P1:Pytorch实现mnist手写数字识别(小白入门)

运行结果:torch版本: 2.6.0+cputorchvision版本: 0.21.0+cpu。

pan_pan_utg的博客 1728

嵌入式状态机编程-QP状态机框架与常见状态机方法

状态机基本术语 现态:是指当前所处的状态。 条件:又称为“事件”,当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。 动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。 次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。 传统有限状态机Fsm实现方法 如图,是一个定时计数器,计数器存在两种状态,一种为设置状态,一种为计时状态 设

qq_36969440的博客 9665

14自由度汽车动力学模型

多体系统分解簧上质量刚体:包含车身主体,具有6个自由度(x/y/z平移 + 俯仰/侧倾/横摆旋转)四个簧下质量刚体:每个车轮独立建模,含垂直跳动(z向)和旋转(绕z轴)自由度总自由度:6(车身) + 4×2(车轮) = 14自由度。

chao189844的博客 1197

7天从小白到实战:PyTorch-book零基础通关指南

你是否还在为深度学习入门而烦恼?面对复杂的神经网络模型无从下手?本文将带你通过gh_mirrors/py/pytorch-book项目,用7天时间从PyTorch零基础成长为能够独立完成实战项目的开发者。读完本文你将获得: - 一套系统的PyTorch学习路径 - 实用的代码调试技巧 - 完整的项目实战经验 - 可视化工具使用指南 ## 第1天:环境搭建与基础入门 ### 开发环境配置 Py...

gitblog_00330的博客 834

Mac用户福音:三步搞定PyMol开源版,告别许可证弹窗(附Homebrew/MacPorts安装指南)

本文为Mac用户提供三步安装PyMol开源版的详细指南,帮助科研人员告别许可证弹窗烦恼。通过Homebrew或MacPorts包管理器安装开源核心,并与商业版图形界面整合,实现无干扰的分子可视化研究体验。特别适合MacOS用户快速部署PyMol进行结构生物学分析。

weixin_28743405的博客 196

深入浅出PyTorch:从入门到实战的完整指南

PyTorch为深度学习实践者提供了一个强大而灵活的工具。通过本文的介绍,读者应该对PyTorch有了全面的认识,从基础概念到高级应用,再到实战项目。记住,真正掌握PyTorch的关键在于不断实践和探索。随着您的技能不断提升,您将能够利用PyTorch解决更加复杂和有趣的问题。

m0_56734068的博客 1404

哨兵1号(Sentinel-1)雷达SAR数据预处理全流程:从下载到精确配准

本文详细介绍了哨兵1号(Sentinel-1)雷达SAR数据从下载到精确配准的全流程预处理方法。内容涵盖SLC与GRD数据选择、ASF平台下载技巧,并重点解析了使用SNAP软件进行几何校正、辐射定标及高精度配准的核心步骤,为InSAR形变监测等应用提供可靠的数据基础。

weixin_29208327的博客 478

Unity 升级 xLua 版本,编译不同平台链接库

Unity 升级 xLua 详解

LymanCao的专栏 1801

7天从小白到高手:最实用的PyTorch入门指南(附环境配置+避坑技巧)

《李宏毅深度学习教程》配套的PyTorch实战指南,专为零基础学习者打造。通过本文你将掌握环境配置、核心概念与实战技巧,避开90%新手常犯错误,快速上手深度学习项目开发。 ## 🔥 为什么选择PyTorch? PyTorch作为Facebook开发的深度学习框架,凭借动态计算图、简洁API和强大生态,已成为学术界和工业界的首选工具。相比其他框架,它更适合: - 快速原型开发(动态图特性支持实

gitblog_00489的博客 968

东方财富网 数据访问接口及字段说明

东方财富网 数据访问接口和字段说明

雨中山草 2万+

python pytorch教程-带你从入门到实战(代码全部可运行)

其实这个教程以前博主写过一次,不过,这回再写一次,打算内容写的多一点,由浅入神,然后加入一些实践案例。下面是我们的内容目录: 1.先从数据类型谈起2.数据类型和其操作谈完,选择某一个方向开始学习和实践(深度学习)。1.先从数据类型谈起那如果从数据类型谈起,我们就要从下面几个角度去谈:1.1 如何生成pytorch的各种数据类型?1.2 pytorch的各种数据类型有哪些属性?1.3 pytorch的各种数据类型有哪些函数操作?首先,我们知道pytorch是一个计算库,也有人说是深度学习库,那么计算库呢,肯

weixin_43327597的博客 1万+

AutoJs调用DeepSeek大模型接口实战教程 AutoJs接入DeepSeek、 DeepSeek API调用 、 手机脚本接入大模型

通过这篇文章,我们用 AutoJs 成功接入了 DeepSeek Chat API。使用发送请求在 Header 里正确携带 API Key从里拿到最终返回结果这样一来,你就可以在 AutoJs 里实现一个智能助手脚本,甚至做更复杂的 AI 自动化工具。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 468

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

大模型入门必看指南:从小白到入门

大模型是AI领域的“超级工具”,用好了能改变生活,但需要理性看待。入门从“会用”开始,逐步深入技术原理,保持好奇,持续学习!

ytt0523_com的博客 1110

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Pyro概率编程终极指南:10个实战项目带你从小白到专家

Pyro是基于Python和PyTorch的深度通用概率编程框架,它让开发者能够轻松构建复杂的概率模型并进行高效推理。本指南将通过10个精选实战项目,帮助你从概率编程新手快速成长为专家,掌握从模型设计到推理优化的完整流程。 ## 为什么选择Pyro进行概率编程? Pyro结合了PyTorch的灵活性和概率编程的强大能力,为科研和工业应用提供了理想的解决方案。其核心优势包括: - **深度集成

gitblog_00826的博客 1025

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

PyTorch终极指南:从入门到实战的深度学习利器

PyTorch已成为当今最受欢迎的深度学习框架之一,本指南将带你全面了解PyTorch的核心功能、安装方法和学习资源。

hxsyyds49的博客 1213

AI:从小白到入门,超详细人工智能成长路径分享:观后感

AI:从小白到入门,超详细人工智能成长路径分享 NLP 顶会:ACL、NAACL、EMNLP、COLING。ML顶会:NeurlPS、ICML、LCLR。CV顶会:CVPR、ICCV、ECCV。

专注于AI领域前沿技术学习与分享:目标检测、图像修复、超分重建、AI工程化 2292

强化学习实战:PyTorch版入门指南

强化学习实战:PyTorch版入门指南 项目介绍 强化学习实战:PyTorch版 是由 sherlockHSY 开发的一个开源项目,旨在为研究者和开发者提供一个基于 PyTorch 实现的强化学习框架。它覆盖了从基础到进阶的一系列算法,如DQN、PG、A2C、PPO等,帮助用户快速理解和实现强化学习的核心概念与技术。通过这个项目,你可以探索如何在不同的环境中应用强化学习技术,从而解决复杂的学习任务...

gitblog_00592的博客 728

2024大模型学习全攻略:从小白到专家,一站式进阶之路

随着人工智能技术的迅猛发展,大模型(Large Models)已成为这一领域的新宠。从GPT系列到BERT,再到各类变体,大模型以其强大的能力吸引了无数开发者和研究者的目光。那么,作为一个零基础的学习者,如何快速入门并精通大模型技术呢?本文将为你提供一份详尽的学习指南。一、大模型基础概念在开始深入学习之前,我们需要了解大模型的基本概念和特点。大模型通常指的是参数量巨大、结构复杂的神经网络模型,它们能够处理海量的数据,并具备强大的学习和推理能力。二、学习路径规划数学基础。

2401_85373898的博客 7385
上一篇: 趣解TensorFlow之入门篇
下一篇: 一起来入门深度学习知识体系
勤奋的知更鸟
博客等级 码龄19年 2041粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

勤奋的知更鸟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值