PyTorch翻译官网教程1-QUICKSTART

Windows10中CUDA cundnn pytorch环境搭建记录 关于在win10中安装cuda cudnn及pytorch全家桶(torch torchvision torchaudio)的详细安装步骤,可以参考这个帖子,说的非常详细!仅在此记录一下我的两台电脑安装的环境。 阅读详情

官网链接

Quickstart — PyTorch Tutorials 2.0.1+cu117 documentation

快速开始

本节将介绍机器学习中常见任务的API。请参阅每个部分中的链接以深入了解。

数据处理

PyTorch有两个处理数据源,torch.utils.data.DataLoader 和 torch.utils.data.Dataset 。Dataset存储样本及其相应的标签,DataLoader在Dataset之上包装一个可迭代对象。

import torch
from torch import nn
from torch.utils.data import DataLoader
from torchvision import datasets
from torchvision.transforms import ToTensor

PyTorch提供了特定领域的库,如TorchText, TorchVision和TorchAudio,它们都包含数据集。在本教程中,我们将使用TorchVision数据集。

torchvision.datasets 模块包含了真实数据的Dataset对象。比如 CIFAR, COCO(完整列表参考Datasets — Torchvision 0.15 documentation)。在本教程中,我们使用FashionMNIST数据集。每个TorchVision数据集包含两个参数:transform和target_transform,分别用于修改样本和标签。

# Download training data from open datasets.
training_data = datasets.FashionMNIST(
    root="data",
    train=True,
    download=True,
    transform=ToTensor(),
)

# Download test data from open datasets.
test_data = datasets.FashionMNIST(
    root="data",
    train=False,
    download=True,
    transform=ToTensor(),
)

我们将Dataset作为DataLoader的入参,Dataset在数据集上包装了一个可迭代对象,并支持自动批处理、采样、洗牌和多进程数据加载。这里我们定义了一个批处理大小为64,即dataloader可迭代对象中的每个元素将返回一批64个特征和标签。

batch_size = 64

# Create data loaders.
train_dataloader = DataLoader(training_data, batch_size=batch_size)
test_dataloader = DataLoader(test_data, batch_size=batch_size)

for X, y in test_dataloader:
    print(f"Shape of X [N, C, H, W]: {X.shape}")
    print(f"Shape of y: {y.shape} {y.dtype}")
    break

输出:

Shape of X [N, C, H, W]: torch.Size([64, 1, 28, 28])
Shape of y: torch.Size([64]) torch.int64


创建模型

为了在PyTorch中定义一个神经网络,我们创建了一个继承了nn.Module的类,我们在__init__函数中定义网络层,并在forward函数中指定数据如何通过网络。为了加速神经网络的操作,我们将其转移到GPU或MPS(如果可用)。

注:

PyTorch MPS (Multi-Process Service)是 PyTorch 中的一种分布式训练方式。它是基于Apple的MPS(Metal Performance Shaders) 框架开发的

# Get cpu, gpu or mps device for training.
device = (
    "cuda"
    if torch.cuda.is_available()
    else "mps"
    if torch.backends.mps.is_available()
    else "cpu"
)
print(f"Using {device} device")

# Define model
class NeuralNetwork(nn.Module):
    def __init__(self):
        super().__init__()
        self.flatten = nn.Flatten()
        self.linear_relu_stack = nn.Sequential(
            nn.Linear(28*28, 512),
            nn.ReLU(),
            nn.Linear(512, 512),
            nn.ReLU(),
            nn.Linear(512, 10)
        )

    def forward(self, x):
        x = self.flatten(x)
        logits = self.linear_relu_stack(x)
        return logits

model = NeuralNetwork().to(device)
print(model)

输出

Using mps device
NeuralNetwork(
  (flatten): Flatten(start_dim=1, end_dim=-1)
  (linear_relu_stack): Sequential(
    (0): Linear(in_features=784, out_features=512, bias=True)
    (1): ReLU()
    (2): Linear(in_features=512, out_features=512, bias=True)
    (3): ReLU()
    (4): Linear(in_features=512, out_features=10, bias=True)
  )
)

注:因为我的设备是苹果,所以输出是mps,跟官网显示不同


优化模型参数

为了训练一个模型,我们需要一个损失函数和一个优化器。

loss_fn = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=1e-3)

在单个训练循环中,模型对训练数据集进行预测(批量提供给它),并反向传播预测误差以调整模型的参数。

def train(dataloader, model, loss_fn, optimizer):
    size = len(dataloader.dataset)
    model.train()
    for batch, (X, y) in enumerate(dataloader):
        X, y = X.to(device), y.to(device)

        # Compute prediction error
        pred = model(X)
        loss = loss_fn(pred, y)

        # Backpropagation
        loss.backward()
        optimizer.step()
        optimizer.zero_grad()

        if batch % 100 == 0:
            loss, current = loss.item(), (batch + 1) * len(X)
            print(f"loss: {loss:>7f}  [{current:>5d}/{size:>5d}]")

我们还根据测试数据集检查模型的性能,以确保它正在学习。

def test(dataloader, model, loss_fn):
    size = len(dataloader.dataset)
    num_batches = len(dataloader)
    model.eval()
    test_loss, correct = 0, 0
    with torch.no_grad():
        for X, y in dataloader:
            X, y = X.to(device), y.to(device)
            pred = model(X)
            test_loss += loss_fn(pred, y).item()
            correct += (pred.argmax(1) == y).type(torch.float).sum().item()
    test_loss /= num_batches
    correct /= size
    print(f"Test Error: \n Accuracy: {(100*correct):>0.1f}%, Avg loss: {test_loss:>8f} \n")

训练过程在几个迭代(epochs)中进行。在每个epochs,模型学习参数以做出更好的预测。我们打印出模型在每个epochs的精度和损失;我们希望看到精度随着时间的推移而提高,损失随着时间的推移而减少。

输出

Epoch 1
-------------------------------
loss: 2.304695  [   64/60000]
loss: 2.293914  [ 6464/60000]
loss: 2.271139  [12864/60000]
loss: 2.267832  [19264/60000]
loss: 2.240983  [25664/60000]
loss: 2.217048  [32064/60000]
loss: 2.230957  [38464/60000]
loss: 2.190546  [44864/60000]
loss: 2.180454  [51264/60000]
loss: 2.167166  [57664/60000]
Test Error: 
 Accuracy: 43.7%, Avg loss: 2.148366 

Epoch 2
-------------------------------
loss: 2.155765  [   64/60000]
loss: 2.153187  [ 6464/60000]
loss: 2.084353  [12864/60000]
loss: 2.106838  [19264/60000]
loss: 2.051079  [25664/60000]
loss: 1.998855  [32064/60000]
loss: 2.030421  [38464/60000]
loss: 1.942099  [44864/60000]
loss: 1.941234  [51264/60000]
loss: 1.891874  [57664/60000]
Test Error: 
 Accuracy: 55.8%, Avg loss: 1.873747 

Epoch 3
-------------------------------
loss: 1.904033  [   64/60000]
loss: 1.885520  [ 6464/60000]
loss: 1.749947  [12864/60000]
loss: 1.801118  [19264/60000]
loss: 1.690538  [25664/60000]
loss: 1.652585  [32064/60000]
loss: 1.680197  [38464/60000]
loss: 1.571219  [44864/60000]
loss: 1.597052  [51264/60000]
loss: 1.505626  [57664/60000]
Test Error: 
 Accuracy: 61.0%, Avg loss: 1.510632 

Epoch 4
-------------------------------
loss: 1.579605  [   64/60000]
loss: 1.553953  [ 6464/60000]
loss: 1.388195  [12864/60000]
loss: 1.468328  [19264/60000]
loss: 1.347958  [25664/60000]
loss: 1.354385  [32064/60000]
loss: 1.368013  [38464/60000]
loss: 1.285745  [44864/60000]
loss: 1.321613  [51264/60000]
loss: 1.226315  [57664/60000]
Test Error: 
 Accuracy: 63.1%, Avg loss: 1.248957 

Epoch 5
-------------------------------
loss: 1.330482  [   64/60000]
loss: 1.320243  [ 6464/60000]
loss: 1.139326  [12864/60000]
loss: 1.250566  [19264/60000]
loss: 1.124903  [25664/60000]
loss: 1.160373  [32064/60000]
loss: 1.176003  [38464/60000]
loss: 1.108413  [44864/60000]
loss: 1.148409  [51264/60000]
loss: 1.063753  [57664/60000]
Test Error: 
 Accuracy: 64.3%, Avg loss: 1.086042 

Done!

保存模型

保存模型的一种常用方法是序列化内部状态字典(包含模型参数)。

torch.save(model.state_dict(), "model.pth")
print("Saved PyTorch Model State to model.pth")

输出

Saved PyTorch Model State to model.pth


加载模型

model = NeuralNetwork().to(device)
model.load_state_dict(torch.load("model.pth"))

这个模型现在可以用来做预测。

classes = [
    "T-shirt/top",
    "Trouser",
    "Pullover",
    "Dress",
    "Coat",
    "Sandal",
    "Shirt",
    "Sneaker",
    "Bag",
    "Ankle boot",
]

model.eval()
x, y = test_data[0][0], test_data[0][1]
with torch.no_grad():
    x = x.to(device)
    pred = model(x)
    predicted, actual = classes[pred[0].argmax(0)], classes[y]
    print(f'Predicted: "{predicted}", Actual: "{actual}"')

输出

Predicted: "Ankle boot", Actual: "Ankle boot"
 

Windows11安装GPU版本的pytorch环境 Windows11系统下安装GPU版本的pytorch环境,期间会涉及到显卡驱动的安装或者升级,安装cuda 、cudnn 、anaconda、pycharm、pytorch 阅读详情

相关推荐

PyTorch quickstart_tutorial 分析

PyTorch quickstart_tutorial 旨在为初学者提供一个快速而简单的概述,以了解PyTorch的基础知识,如张量操作和神经网络建模。通过完成本教程,您将学到如何使用PyTorch构建简单的神经网络和训练数据,以及如何使用数据加载器和优化器来实现更加复杂的训练任务。

示例和笔记 305

pip install torch==2.0.1+cu117

【代码】pip install torch==2.0.1+cu117。

weixin_44647098的博客 4051

AI自学路线图:结构化学习路径与RAG工程实践指南

大语言模型(LLM)和检索增强生成(RAG)已成为AI工程落地的核心技术范式。理解其原理需从基础能力生长轴出发——即从可感知的输入输出,到可调试的中间态(如文本切分、Embedding向量化),再到可重构的系统思维(如微模型协作、重排序机制)。这类技术的价值不仅在于提升问答准确率,更在于构建可验证、可诊断、可演进的AI应用闭环。典型应用场景包括本地化知识库问答、医疗/法律等垂直领域智能助手、以及低延迟高可控的边缘AI部署。本文聚焦真实教学与工程实践中提炼出的‘From zero to hero with L

weixin_34025051的博客 325

【C++】VS配置OpenCV/Libtorch环境

本文是视频的笔记。VS版本:2019Opencv版本:3.4.1Libtorch版本:2.0.1+cu117。

兴趣使然的创作者 1118

CARLA快速启动包:解决Ubuntu+GPU环境安装失败的核心方案

CARLA作为主流自动驾驶仿真平台,本质是UE4引擎、Python绑定与世界模型的深度耦合体,其运行高度依赖操作系统ABI、NVIDIA驱动版本、CUDA Toolkit精确版本及Python ABI兼容性等底层工程约束。传统‘按官网步骤安装’方式因忽略GLIBC版本差异、Vulkan驱动缺失、cmake模块路径变更等隐性依赖,导致90%以上用户首次部署失败。本方案以环境锁死与故障前置化为设计核心,通过操作系统指纹校验、GPU驱动双检、CUDA 11.7.1精准注入及Python 3.8.10原子化隔离,构

davy57345的博客 381

混元图像3.0实测解析:开源多模态对齐与中文提示词工程

多模态大模型正从参数堆砌走向语义对齐与文化可计算。混元图像3.0以1278分登顶LMArena盲测榜单,其核心突破在于将中文设计语境(如‘留白’‘写意’)转化为可建模、可微调的token级表达,并通过动态提示词剪枝、运动轨迹token化等机制提升跨模态一致性。该模型全量开源权重与训练代码,但实际落地需跨越硬件栈锁定、refiner显存管理、中文语义解析规则三大门槛。它不仅支持AIGC图像生成,更构建了面向国风设计、非遗数字化、电商视觉等场景的可控生成技术栈,为中文AIGC提供从提示词工程到LoRA微调的完整

a2850363633的博客 495

Pytorch官网tutorial快速入门教程(1)Quickstart

在这里,我们定义了批处理大小为64,也就是说,迭代器中的每个元素将返回一个包含64个特征和标签的批次。在下载完数据后,training_data和test_data变量中存储的是FashionMNIST类型的数据集对象,其中包含图像数据(转换为PyTorch张量)和对应的标签。我们在_ _init_ _函数中定义网络的层,并在forward函数中指定数据如何通过网络传递。在单个训练循环中,模型对训练数据集进行预测(按批次输入),然后通过反向传播将预测误差反馈给模型的参数以进行调整。

qilu_88的博客 243

昆仑通态屏幕制作(连载1)---接触篇

写在开始 背景:最近出了做QT、LORA和4G,还做了一个屏幕。以前做了一个迪文的串口屏幕,发现网上的教程很多,所以连载就不更新了,并且迪文屏幕的设置什么的比较简单,应该从网上都能找到对应的教程。而现在用的昆仑通态的屏幕属于嵌入式屏幕,至于为啥叫嵌入式,也不是很明白,反正就是需要用这个屏幕,嵌入式不嵌入式不重要了。重要的是能用,并且能实现串口屏幕不能实现的功能。所以选定昆仑通态的一款屏幕。 文章语言:我比较习惯用比较糙的语言介绍做的东西,有时候不太准备,但是为了方便理解,还请大家谅解。用...

weixin_45426095的博客 6739

AIGC(生成式AI)试用 44 -- 个人知识库

AIGC(生成式AI)试用 43 -- 个人知识库

Rolei的博客 1362

东方财富API隐藏技巧:这样获取分时均价线数据更稳定(避坑指南)

本文深入解析东方财富API获取股票分时数据,特别是分时均价线的实战技巧与避坑指南。针对高频调用中常见的请求失败、数据错位及IP限制等问题,提供了从接口参数深层解析、稳健请求与错误处理机制,到系统优化与数据校验的全流程解决方案,帮助开发者构建稳定可靠的数据采集系统。

rice5的博客 2541

DAC8568实战指南:如何用STM32实现8通道DAC精准控制(附代码)

本文提供DAC8568与STM32结合的实战指南,详细解析8通道16位DAC的精准控制方法。内容涵盖硬件连接、SPI配置、驱动层构建、时序调试及多通道同步输出等关键步骤,并附有经过验证的HAL库驱动代码,帮助工程师快速解决实际项目中的通信与输出稳定性问题。

weixin_29175469的博客 746

开源大模型全球化实践:透明可信架构与开发者工作流嵌入

开源大模型正从参数竞赛迈向真实落地阶段,其核心挑战已转向技术可信度构建与全球开发者工作流的无缝集成。基于可复现评估、全链路透明(如SHA256校验、公开CI日志)和最小可行信任单元(MVTU)等原则,模型能绕过冗长合规流程,快速获得Hugging Face等平台信任;而OpenAI兼容API、标准目录结构、预编译Docker镜像等设计,则显著降低海外开发者集成门槛。这种‘工作流优先’策略,使模型竞争力下沉至‘4小时内完成生产切换’的微观尺度。openclaw案例印证:在缺乏系统性资源支持时,极简可信架构与开

weixin_34121304的博客 400

群晖Git Server权限配置全攻略:如何让普通用户(非admin)也能安全提交代码?

本文详细解析了群晖Git Server权限配置方案,特别针对普通用户(非admin)安全提交代码的需求。通过SSH服务配置、精细化用户权限管理及仓库创建自动化脚本,实现在DS218+等群晖NAS设备上的高效代码协作,同时确保系统安全。

weixin_42528780的博客 466

安装torch和torchvision(GPU)

安装torch和torchvision(GPU)

qq_71547093的博客 7560

CST电子枪仿真实战:从零搭建粒子追踪模型到磁场聚焦优化

本文提供了一份CST电子枪仿真实战指南,详细讲解了从零开始搭建粒子追踪模型的全过程。内容涵盖项目初始化、Track Solver求解器基础、几何建模、粒子源定义,并重点介绍了如何通过引入和优化静磁场(如聚焦线圈配置)来实现电子束的聚焦,帮助工程师高效预测和优化束流品质。

game4的博客 339

基于Simulink的自适应反步法(Adaptive Backstepping)控制​

本文针对非线性系统控制中未知参数和强非线性耦合的挑战,提出基于Simulink的自适应反步法解决方案。通过融合参数在线估计与反步递归设计,该方法显著提升了永磁同步电机(PMSM)速度控制的鲁棒性,使跟踪误差从20%降至3%,参数估计收敛时间小于0.5秒。文章详细阐述了从算法推导到Simulink实现的完整流程,包括系统架构设计、核心算法推导(以PMSM为例)、模块化建模方法、参数优化策略以及工程部署建议。提供的自适应控制器MATLAB代码和关键参数表可直接应用于实际工程,为电机驱动、机械臂等非线性系统控制提

xiaoheshang_123的博客 104

Python——PyTorch的安装

Python——PyTorch的安装 越来越多的人选择PyTorch的深度学习框架了,那么这么包如何安装呢?注意,它不能像Tensorflow或者Keras那样安装了,否者会报错的。 官网给了具体说明,咱们移步:PyTorch官网 注意: 查看cuda版本: 方法1: cat /usr/local/cuda/version.txt 方法2: nvcc --version 查看cudnn版本:...

GeekZW的博客 2478

SAP GR(Group Reporting)合并报表内容及功能简介(五)-合并和抵消

随着合并和收购数量的显著增加,企业在全球经济中面临着诸多挑战。其中最常见的是法律实体与子公司之间缺乏透明度,导致无法以经济高效的方式对账法律实体与子公司之间的公司间交易,从而造成结算出现重大延迟。公司间匹配和对账功能允许用户在关账过程中进行早期分析,以避免公司间差异,并缩短关账时的延迟。公司间匹配和对账功能交易级别匹配和实时对账基于各种组织维度(如公司、利润中心和合并单位)的灵活建模自动差异解决。应用内通信和工作流。与公司间抵销集成。

weixin_43853754的博客 4403

pytorch采坑(Expected all tensors to be on the same device, but found at least two devices)

pytorch使用过程中遇到 Expected all tensors to be on the same device, but found at least two devices, cpu and cuda:0! 这个问题

EstrangedZ的博客 1万+

GeoXCP:可解释人工智能中空间解释的不确定性量化

GeoXCP: uncertainty quantification of spatial explanations in explainable AI提出基于保形预测(conformal prediction)的不确定性量化框架——地理空间解释保形预测(GeoXCP),将空间依赖纳入建模过程,生成具有校准不确定性估计的空间自适应解释。通过大量模拟实验和真实世界数据集验证,GeoXCP在不同地理空间场景中能提供可靠解释并有效量化不确定性,推动可解释地理空间机器学习的发展,帮助决策者评估模型驱动洞察的可信度。

May the Force be with you 244

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

安装Pytorch2.0.1+cuda11.7踩雷历程

打算跑一下yolov10,我看的教程在安装pytorch的时候强调了不要换源直接下(可能导致调用不了GPU)。但是我直接pip默认用了清华源,所以恢复了一下默认源。但是下载成功之后执行torch.__version__显示是cpu,也就是根本调用不了gpu。我自己的电脑是cuda11.7,去pytorch官网找对应的下载代码是这样。PS:用conda下载的时候Solving Environment一直转圈。

qq_53296986的博客 2062

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

QT配置libtorch的问题解决

配置QT以及QT中的torch环境libtorch,记录踩坑问题,希望能帮助大家!解决引用#include 报错的问题,解决报错C3861:"_addcarry_u64":找不到标识符的问题,解决报错LNK1104:无法打开文件“ibprotobufd\.lib”的问题。

m0_46464899的博客 2407

ssm框架搭建

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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【pytorch】安装torch==2.0.1+cu117

【代码】【pytorch】安装torch==2.0.1+cu117。

niexingfeng的博客 2754

ERROR: No matching distribution found for torch==2.0.1+cu117(比手动下载方便)

【代码】ERROR: No matching distribution found for torch==2.0.1+cu117(比手动下载方便)

weixin_53765004的博客 4895

pytorch GPU版本安装(亲测)

pytorch gpu版本安装

sslfk的博客 8123

ChatGLM-6B的windows本地部署使用

ChartGPT最近特别火,但是收费,而且国内访问不太方便,所以找了个类似的进行学习使用 ChatGLM-6B,开源支持中英文的对话大模型,基于 General Language Model (GLM) 架构,具有62亿参数,简单说非常不错,可能和chart GPT比较有些差距,但是开源免费,并且可以在本地部署,支持中文,这就很nice了

洒家 4019
上一篇: 快速掌握TCP的三次握手和四次挥手
下一篇: PyTorch翻译官网教程2-TENSORS
poorCoder_
博客等级 码龄10年 129粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值