PyTorch翻译官网教程7-OPTIMIZING MODEL PARAMETERS

AWS AI/ML工程化实战指南:SageMaker Pipelines与Inferentia落地要点 AI工程化正从算法验证阶段迈入规模化生产阶段,核心挑战已由模型精度转向可复现、可监控、可运维的系统性能力。其底层原理在于将数据版本、模型版本、运行环境通过声明式编排(如SageMaker Pipelines YAML)强绑定,结合专用硬件(如Inferentia)实现确定性推理性能。该范式显著提升MLOps可观测性与无服务器ML推理稳定性,广泛应用于金融风控、实时推荐、智能客服等对延迟和合规敏感的生产场景。本文聚焦2021年AWS re:Invent中验证落地的硬核实践,深度解析Pipeline版本化输出、 阅读详情

官网链接

Optimizing Model Parameters — PyTorch Tutorials 2.0.1+cu117 documentation

优化模型参数

现在我们有了一个模型和数据,是时候通过优化我们的数据参数来训练、验证和测试我们的模型了。训练模型是一个迭代过程;在每次迭代中,模型对输出进行预测,计算猜测中的误差(损失),收集误差相对于其参数的导数(如我们在前一节中看到的),并使用梯度下降优化这些参数。要了解这个过程的更详细的步骤,请查看backpropagation from 3Blue1Brown.关于反向传播的视频。
 

预备代码

我们从前面的数据集和数据加载器和构建模型部分加载代码。

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

training_data = datasets.FashionMNIST(
    root="data",
    train=True,
    download=True,
    transform=ToTensor()
)

test_data = datasets.FashionMNIST(
    root="data",
    train=False,
    download=True,
    transform=ToTensor()
)

train_dataloader = DataLoader(training_data, batch_size=64)
test_dataloader = DataLoader(test_data, batch_size=64)

class NeuralNetwork(nn.Module):
    def __init__(self):
        super(NeuralNetwork, self).__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()

输出

Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz
Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz to data/FashionMNIST/raw/train-images-idx3-ubyte.gz

  0%|          | 0/26421880 [00:00<?, ?it/s]
  0%|          | 65536/26421880 [00:00<01:12, 364467.23it/s]
  1%|          | 229376/26421880 [00:00<00:38, 682867.26it/s]
  3%|2         | 753664/26421880 [00:00<00:12, 2105549.70it/s]
  7%|7         | 1867776/26421880 [00:00<00:06, 4037060.52it/s]
 17%|#7        | 4554752/26421880 [00:00<00:02, 10054971.17it/s]
 25%|##4       | 6586368/26421880 [00:00<00:01, 10826687.85it/s]
 35%|###4      | 9175040/26421880 [00:01<00:01, 14440602.83it/s]
 43%|####3     | 11370496/26421880 [00:01<00:01, 13904185.40it/s]
 52%|#####2    | 13828096/26421880 [00:01<00:00, 16310860.12it/s]
 61%|######1   | 16154624/26421880 [00:01<00:00, 15292129.11it/s]
 70%|######9   | 18448384/26421880 [00:01<00:00, 17052919.81it/s]
 79%|#######9  | 20971520/26421880 [00:01<00:00, 16194537.05it/s]
 87%|########7 | 23101440/26421880 [00:01<00:00, 17376925.42it/s]
 97%|#########7| 25755648/26421880 [00:01<00:00, 16656740.38it/s]
100%|##########| 26421880/26421880 [00:02<00:00, 13156067.43it/s]
Extracting data/FashionMNIST/raw/train-images-idx3-ubyte.gz to data/FashionMNIST/raw

Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-labels-idx1-ubyte.gz
Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-labels-idx1-ubyte.gz to data/FashionMNIST/raw/train-labels-idx1-ubyte.gz

  0%|          | 0/29515 [00:00<?, ?it/s]
100%|##########| 29515/29515 [00:00<00:00, 330432.50it/s]
Extracting data/FashionMNIST/raw/train-labels-idx1-ubyte.gz to data/FashionMNIST/raw

Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz
Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz to data/FashionMNIST/raw/t10k-images-idx3-ubyte.gz

  0%|          | 0/4422102 [00:00<?, ?it/s]
  1%|1         | 65536/4422102 [00:00<00:11, 366194.81it/s]
  5%|5         | 229376/4422102 [00:00<00:06, 687142.64it/s]
 15%|#4        | 655360/4422102 [00:00<00:02, 1809732.80it/s]
 38%|###7      | 1671168/4422102 [00:00<00:00, 3647146.90it/s]
 89%|########8 | 3932160/4422102 [00:00<00:00, 8701433.31it/s]
100%|##########| 4422102/4422102 [00:00<00:00, 6041840.30it/s]
Extracting data/FashionMNIST/raw/t10k-images-idx3-ubyte.gz to data/FashionMNIST/raw

Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-labels-idx1-ubyte.gz
Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-labels-idx1-ubyte.gz to data/FashionMNIST/raw/t10k-labels-idx1-ubyte.gz

  0%|          | 0/5148 [00:00<?, ?it/s]
100%|##########| 5148/5148 [00:00<00:00, 33685299.52it/s]
Extracting data/FashionMNIST/raw/t10k-labels-idx1-ubyte.gz to data/FashionMNIST/raw

超参数

超参数是可调节的参数,可以让您控制模型优化过程。不同的超参数值会影响模型训练和收敛速度(read more 关于超参数调优的信息)。

我们为训练定义了以下超参数:

  • epoch的次数-迭代数据集的次数
  • Batch Size -在参数更新之前通过网络传播的数据样本数量
  • Learning Rate-在每个Batch /epoch中更新模型参数的程度。较小的值产生较慢的学习速度,而较大的值可能导致训练过程中不可预测的行为。
learning_rate = 1e-3
batch_size = 64
epochs = 5

优化循环

一旦我们设置了超参数,我们就可以用优化循环来训练和优化我们的模型。优化循环的每次迭代称为一个epoch。

每个epoch由两个主要部分组成:

  • 训练循环-迭代训练数据集并尝试收敛到最优参数。
  • 验证/测试循环-迭代测试数据集以检查模型性能是否有所改善。

让我们简单地熟悉一下训练循环中使用的一些概念。跳到前面看看优化循环的完整实现(Full Implementation)。

损失函数

当提供一些训练数据时,我们没有训练的神经网络可能不会给出正确的答案。损失函数衡量的是得到的结果与目标值的错误程度,这是我们在训练中要最小化的损失函数。为了计算损失,我们使用给定数据样本的输入进行预测,并将其与真实的数据标签值进行比较。

常见的损失函数包括 nn.MSELoss (均方误差) 用户回归任务,nn.NLLLoss(负对数似然)用于分类。nn.CrossEntropyLoss 组合nn.LogSoftmax 和 nn.NLLLoss。

我们将模型的输出logits传递给nn.CrossEntropyLoss,它将对logits进行归一化并计算预测误差。

# Initialize the loss function
loss_fn = nn.CrossEntropyLoss()

优化器

优化指的是在每个训练步骤中调整模型参数以减少模型误差的过程。优化算法定义了如何执行这个过程(在这个例子中,我们使用随机梯度下降)。所有优化逻辑都封装在optimizer对象中。这里,我们使用SGD优化器;此外,PyTorch中有许多不同的优化器(different optimizers ),如ADAM和RMSProp,它们可以更好地用于不同类型的模型和数据。

我们通过注册需要训练的模型参数,并传入学习率超参数来初始化优化器。

optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)

在训练循环中,优化分三个步骤进行:

  • 调用optimizer.zero_grad()重置模型参数的梯度。梯度默认累计 ;为了防止重复计算,我们在每次迭代时显式地将它们归零。
  • 调用 loss.backward() 方法反向传播预测的损失。PyTorch将损失的梯度与每个参数关联起来。
  • 一旦我们有了梯度,我们通过调用optimizer.step() 方法 在向后传递过程中使用收集的梯度来调整模型参数。

完整实现

我们定义了train_loop方法循环优化代码,还有test_loop 方法根据测试数据循环评估模型的性能。

def train_loop(dataloader, model, loss_fn, optimizer):
    size = len(dataloader.dataset)
    # Set the model to training mode - important for batch normalization and dropout layers
    # Unnecessary in this situation but added for best practices
    model.train()
    for batch, (X, y) in enumerate(dataloader):
        # Compute prediction and loss
        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_loop(dataloader, model, loss_fn):
    # Set the model to evaluation mode - important for batch normalization and dropout layers
    # Unnecessary in this situation but added for best practices
    model.eval()
    size = len(dataloader.dataset)
    num_batches = len(dataloader)
    test_loss, correct = 0, 0

    # Evaluating the model with torch.no_grad() ensures that no gradients are computed during test mode
    # also serves to reduce unnecessary gradient computations and memory usage for tensors with requires_grad=True
    with torch.no_grad():
        for X, y in dataloader:
            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")

我们定义损失函数和优化器,并将其传递给train_loop和test_loop。您可以随意增加epoch的数量,以跟踪模型不断改进的性能。

loss_fn = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)

epochs = 10
for t in range(epochs):
    print(f"Epoch {t+1}\n-------------------------------")
    train_loop(train_dataloader, model, loss_fn, optimizer)
    test_loop(test_dataloader, model, loss_fn)
print("Done!")

输出

Epoch 1
-------------------------------
loss: 2.298730  [   64/60000]
loss: 2.289123  [ 6464/60000]
loss: 2.273286  [12864/60000]
loss: 2.269406  [19264/60000]
loss: 2.249603  [25664/60000]
loss: 2.229407  [32064/60000]
loss: 2.227368  [38464/60000]
loss: 2.204261  [44864/60000]
loss: 2.206193  [51264/60000]
loss: 2.166651  [57664/60000]
Test Error:
 Accuracy: 50.9%, Avg loss: 2.166725

Epoch 2
-------------------------------
loss: 2.176750  [   64/60000]
loss: 2.169595  [ 6464/60000]
loss: 2.117500  [12864/60000]
loss: 2.129272  [19264/60000]
loss: 2.079674  [25664/60000]
loss: 2.032928  [32064/60000]
loss: 2.050115  [38464/60000]
loss: 1.985236  [44864/60000]
loss: 1.987887  [51264/60000]
loss: 1.907162  [57664/60000]
Test Error:
 Accuracy: 55.9%, Avg loss: 1.915486

Epoch 3
-------------------------------
loss: 1.951612  [   64/60000]
loss: 1.928685  [ 6464/60000]
loss: 1.815709  [12864/60000]
loss: 1.841552  [19264/60000]
loss: 1.732467  [25664/60000]
loss: 1.692914  [32064/60000]
loss: 1.701714  [38464/60000]
loss: 1.610632  [44864/60000]
loss: 1.632870  [51264/60000]
loss: 1.514263  [57664/60000]
Test Error:
 Accuracy: 58.8%, Avg loss: 1.541525

Epoch 4
-------------------------------
loss: 1.616448  [   64/60000]
loss: 1.582892  [ 6464/60000]
loss: 1.427595  [12864/60000]
loss: 1.487950  [19264/60000]
loss: 1.359332  [25664/60000]
loss: 1.364817  [32064/60000]
loss: 1.371491  [38464/60000]
loss: 1.298706  [44864/60000]
loss: 1.336201  [51264/60000]
loss: 1.232145  [57664/60000]
Test Error:
 Accuracy: 62.2%, Avg loss: 1.260237

Epoch 5
-------------------------------
loss: 1.345538  [   64/60000]
loss: 1.327798  [ 6464/60000]
loss: 1.153802  [12864/60000]
loss: 1.254829  [19264/60000]
loss: 1.117322  [25664/60000]
loss: 1.153248  [32064/60000]
loss: 1.171765  [38464/60000]
loss: 1.110263  [44864/60000]
loss: 1.154467  [51264/60000]
loss: 1.070921  [57664/60000]
Test Error:
 Accuracy: 64.1%, Avg loss: 1.089831

Epoch 6
-------------------------------
loss: 1.166889  [   64/60000]
loss: 1.170514  [ 6464/60000]
loss: 0.979435  [12864/60000]
loss: 1.113774  [19264/60000]
loss: 0.973411  [25664/60000]
loss: 1.015192  [32064/60000]
loss: 1.051113  [38464/60000]
loss: 0.993591  [44864/60000]
loss: 1.039709  [51264/60000]
loss: 0.971077  [57664/60000]
Test Error:
 Accuracy: 65.8%, Avg loss: 0.982440

Epoch 7
-------------------------------
loss: 1.045165  [   64/60000]
loss: 1.070583  [ 6464/60000]
loss: 0.862304  [12864/60000]
loss: 1.022265  [19264/60000]
loss: 0.885213  [25664/60000]
loss: 0.919528  [32064/60000]
loss: 0.972762  [38464/60000]
loss: 0.918728  [44864/60000]
loss: 0.961629  [51264/60000]
loss: 0.904379  [57664/60000]
Test Error:
 Accuracy: 66.9%, Avg loss: 0.910167

Epoch 8
-------------------------------
loss: 0.956964  [   64/60000]
loss: 1.002171  [ 6464/60000]
loss: 0.779057  [12864/60000]
loss: 0.958409  [19264/60000]
loss: 0.827240  [25664/60000]
loss: 0.850262  [32064/60000]
loss: 0.917320  [38464/60000]
loss: 0.868384  [44864/60000]
loss: 0.905506  [51264/60000]
loss: 0.856353  [57664/60000]
Test Error:
 Accuracy: 68.3%, Avg loss: 0.858248

Epoch 9
-------------------------------
loss: 0.889765  [   64/60000]
loss: 0.951220  [ 6464/60000]
loss: 0.717035  [12864/60000]
loss: 0.911042  [19264/60000]
loss: 0.786085  [25664/60000]
loss: 0.798370  [32064/60000]
loss: 0.874939  [38464/60000]
loss: 0.832796  [44864/60000]
loss: 0.863254  [51264/60000]
loss: 0.819742  [57664/60000]
Test Error:
 Accuracy: 69.5%, Avg loss: 0.818780

Epoch 10
-------------------------------
loss: 0.836395  [   64/60000]
loss: 0.910220  [ 6464/60000]
loss: 0.668506  [12864/60000]
loss: 0.874338  [19264/60000]
loss: 0.754805  [25664/60000]
loss: 0.758453  [32064/60000]
loss: 0.840451  [38464/60000]
loss: 0.806153  [44864/60000]
loss: 0.830360  [51264/60000]
loss: 0.790281  [57664/60000]
Test Error:
 Accuracy: 71.0%, Avg loss: 0.787271

Done!

延伸阅读

深度学习之QLoRA原理详解及Pytorch实现 【代码】深度学习之QLoRA原理详解及Pytorch实现。 阅读详情

相关推荐

PyTorch、CPU、GPU 与 CUDA 深度解析:一次张量加法背后的四层世界

本文厘清PyTorch、CPU、GPU与CUDA的层级关系:PyTorch是编程接口,CPU负责控制与调度,CUDA是让CPU指挥GPU的并行编程平台,GPU则是实际执行计算的加速器。四者非并列,而是分层协作。以x + y为例,从Python前端到算子分发、CUDA运行时,最终在GPU硬件上执行。关键认知包括:GPU并非万能加速器,小任务因开销大反而更慢;.to('cuda')仅搬运数据,不改变代码逻辑;算子性能受算术强度与内存带宽制约。理解此链路是优化深度学习性能的前提。

reset2021的博客 285

[pytorch学习笔记] 4.Transforms

目录 介绍 ToTensor() Lambda Transforms 参考 介绍 数据并不总是以训练机器学习算法所需的最终处理形式出现。 我们使用Transforms来对数据进行一些操作并使其适合训练。 所有 TorchVision 数据集都有两个参数 - 用于修改特征的transform和用于修改标签的 target_transform - 接受包含转换逻辑的可调用对象。 torchvision.transforms 模块提供了常用转换。 FashionMNIST 数据集图片是 P

是安澜啊 603

从零搭建openEuler ARM64开发测试环境:手把手教你用libvirt+KVM配置虚拟机(含VNC远程安装)

本文详细介绍了如何在ARM64平台上从零搭建openEuler开发测试环境,涵盖libvirt和KVM配置虚拟机的完整流程,包括环境准备、存储配置、网络优化、XML配置详解以及VNC远程安装。特别针对华为欧拉(openEuler)系统进行了优化,帮助开发者快速构建高效的ARM架构虚拟化环境。

weixin_30545945的博客 587

pytorch学习-Transforms

pytorch学习-Transforms

进击的扛把子 730

RADIOML 2018.01A数据集在自动调制识别中的实战应用指南

本文提供了RADIOML 2018.01A数据集在自动调制识别(AMR)任务中的完整实战指南。内容涵盖从数据集介绍、数据获取与解包、高效预处理流程,到构建PyTorch数据管道、模型设计(如1D CNN、ResNet)以及训练调参策略。重点阐述了如何利用该数据集训练鲁棒的AI模型,以应对复杂信道环境和低信噪比挑战,并给出了详细的性能评估方法。

plant的博客 174

重构工业交互体验:响应式数据可视化大屏解决方案

从智慧园区到数据中心,从水务监控到风力发电场景,HT 通过 2D/3D 组态技术与响应式布局机制,让数据以更灵活、更精准的方式呈现场景动态 —— 这正是 HT 技术在工业可视化领域的核心价值。例如,在智慧楼宇监控系统中,HT 引擎可实时渲染建筑结构、设备状态与数据流,同时确保画面在不同尺寸屏幕上的一致性。以某工业数据中心大屏为例,HT 通过暗红色主调搭配工业元素,结合粉色与黄色点缀,打破传统深蓝色大屏的视觉定式,同时通过矢量图形确保色彩在不同亮度下的辨识度 —— 这正是 HT 技术在视觉设计上的独特优势。

Hightopo的博客 890

MNIST数据集详解及可视化处理(pytorch)

MNIST数据集详解及可视化处理(pytorch) MNIST 数据集已经是一个被”嚼烂”了的数据集, 作为机器学习在视觉领域的“hello world”,很多教程都会对它”下手”, 几乎成为一个 “典范”。 不过有些人可能对它还不是很了解, 下面来介绍一下。 MNIST 数据集可在 http://yann.lecun.com/exdb/mnist/ 获取, 它包含了四个部分: Training set images: train-images-idx3-ubyte.gz (9.9 MB, 解压后 47

llqzx的博客 9446

SAP 物料的分割评估

SAP 物料的分割评估 前言 本文主要讲解SAP中物料的分割评估,通过分割评估来区分出同一物料不同来源下的核算方式。例如:同一物料分为自产或者采购,或者同一物料分为进口或者国内采购等。 一、概述 分割评估一般用于以下场景: 1、物料分为内部采购和外部采购; 2、物料分属于进口或者国内采购; 3、物料分属于不同的批次; 4、物料分为自制或者采购。 由于物料的来源不同可能导致物料的价格或者性质不同,需要用不同价格来区分出 二、配置步骤 1.激活分割评估 ...

五谷散熊 6792

AWS re:Invent 2021 AI工程化实战指南深度解析

AI工程化不是算法调优,而是将机器学习模型可靠、可观测、可审计地交付到生产环境的系统性工程实践。其核心在于基础设施可信度验证、数据-模型-服务间的机器可读契约管理,以及业务价值的可追溯性量化。在云原生场景下,MLOps需深度融合IaC(如CloudFormation/CDK)、可观测性(CloudWatch/X-Ray)与成本治理(Cost Explorer),尤其关注SageMaker Endpoint冷启动、Kinesis消费者滞留、Model Monitor采样偏差等高频生产陷阱。本文基于AWS re

weixin_30627341的博客 494

S7-200SMART PLC中进行MODBUS RTU通信的3种方法(1)

S7-200SMART PLC中进行MODBUS RTU通信的3种方法(1)

Robot_PLC_HMI_Automation 4241

2025电赛嵌入式:K210教程-如何刷固件 如何烧录代码 全网唯一

本文介绍了K210开发板的固件刷写和开发环境搭建方法。主要内容包括:1)从Sipeed官网下载合适的MaixPy固件,根据需求选择完整版或精简版;2)使用k-flash等工具烧录固件,注意区分亚博和Sipeed开发板的固件版本;3)介绍了擦除闪存的两种模式(部分擦除和完全擦除)及其应用场景;4)搭建CanMV开发环境,通过MaixPy IDE连接开发板并进行程序调试。文章还提供了常见问题的解决方法,如串口驱动安装、固件兼容性检查等,为K210开发提供了完整的入门指南。

FJN110的博客 547

Scikit-Learn 1.8引入Array,支持 PyTorch 与 CuPy 张量的原生 GPU 加速

Scikit-Learn 1.8.0 更新引入了实验性的 Array API 支持。这意味着 CuPy 数组或 PyTorch 张量现在可以直接在 Scikit-

2601_96798737的博客 207

【毕设全程指导】基于YOLOv8的包装商品检测与可视化系统(SKU110K实战)

本文介绍了一个基于YOLOv8的包装商品检测与可视化系统毕业设计方案。项目采用SKU110K数据集,通过CSV转TXT格式转换适配YOLO模型训练,包含详细的环境搭建、模型配置和训练流程。系统实现了包装商品的自动化检测,并开发了Tkinter可视化界面进行交互式检测展示。该方案结合产业应用需求与技术深度,既具备实用价值,又能充分展示学生的技术能力,适合作为计算机视觉相关专业的毕业设计选题。整个项目从数据准备到界面开发完整覆盖,帮助学生系统掌握目标检测项目的完整实现流程。

LXY_LOVE36的博客 148

Google 与 Meta 联合推出 TorchTPU,PyTorch 原生支持 TPU 硬件

Google 和 Meta 合作开源 TorchTPU 项目,让 PyTorch 工作负载可以原生运行在 TPU 上。

wfly blog 74

深入浅出:大型语言模型(LLM)的全面解读

在当今的数字化时代,人工智能技术已经成为各行各业的核心驱动力之一。而在人工智能的领域中,大型语言模型(LLM)作为一种引人瞩目的技术,正在以其强大的语言理解和生成能力引领着一场革命。本文旨在深入浅出地解读大型语言模型,探讨其背后的原理、技术突破、应用场景以及未来发展趋势。

fudaihb的博客 10万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

姿态估计(Pose Estimation)深度解析:从人体关键点检测到主流算法与 PyTorch 实战

姿态估计(Pose Estimation)是计算机视觉领域的一项重要技术,主要任务是从图像或视频中识别人体、动物或物体的关键点,并根据关键点之间的空间关系推断目标的姿态结构。简单来说,姿态估计就是让计算机理解一个人的身体姿势。例如,当我们输入一张包含人体的图片时,姿态估计算法可以自动识别:头部、鼻子、眼睛等面部关键点。左右肩膀、肘部和手腕。左右髋部、膝盖和脚踝。身体各个关节之间的连接关系。最终,模型会将这些关键点连接起来,形成一张人体骨架图。

2503_90237586的博客 344

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

机器学习教程,从入门到精通,深度学习入门语法知识点完全指南(PyTorch 版)(12)

本文为零基础读者量身定制的PyTorch深度学习入门指南,系统讲解深度学习核心原理与实战语法。从神经元、激活函数、损失函数等基础概念入手,结合Sigmoid、ReLU、MSE、CrossEntropy等关键知识点,辅以可运行的PyTorch代码示例,逐行注释详解。涵盖线性回归、CNN、GAN、ResNet等八大典型应用,揭示其在推荐系统、自动驾驶、医疗影像等企业场景中的实际价值,帮助读者快速掌握“原理—框架—应用”全链路技能。

qq_45746668的博客 381

lwip-2.0.3

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

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【深度学习项目实战·33】自定义数据集:把自己的图片接入PyTorch

本文聚焦自定义数据集的构建与验证,解决“图片如何对应标签”的核心问题。通过构建包含路径、标签、ID与分组信息的标注表,实现样本可追溯;设计ManifestDataset类,统一图像读取、变换与张量输出格式;强调数据检查、固定类别映射与数据契约的重要性,确保训练前数据闭环可靠。后续将进入数据增强与划分环节。

银尘博客 195

第22章 实现一个完整的 RAG 系统(PyTorch) (终章)

本章构建了一个完整的本地RAG系统,集成BGE嵌入、Chroma向量库、BM25与RRF混合检索、BGE重排序器及Qwen2.5-7B-Instruct生成模型。通过结构化分块、增量索引、带引用的Prompt设计与拒答机制,实现精准问答。基于Recall@K与MRR量化评估各组件贡献,实测在RTX 4090上完成端到端推理,兼顾性能与可解释性,具备生产可用性。

AI服务生活 379

【AI 开发从入门到进阶 · 04】PyTorch 第一课:Tensor、自动求导与那套万能的「五步训练循环」

本文系统介绍PyTorch入门核心内容:为何选择PyTorch(动态图、生态优势)、Tensor的自动求导机制、构建神经网络的四大组件(nn.Module、Loss、Optimizer、DataLoader),并通过MNIST手写数字识别实战演示“五步训练循环”——前向传播、计算损失、反向传播、清零梯度、参数更新。强调zero_grad()、no_grad()、CrossEntropyLoss不加Softmax等关键细节,附可视化分析与排错清单。下篇将深入CNN卷积网络,提升图像分类性能。

信息安全领域优质创作者|操作系统领域专家 160

PyTorch强化学习实战(35)——多智能体强化学习

在本节中,我们将介绍多智能体强化学习 (MARL),这是强化学习 (Reinforcement Learning, RL) 和深度强化学习的一个相对较新的方向,涉及多个智能体在环境中进行交互的情况。在现实生活中,这类问题出现在宽带通信网络、物联网等场景中。在本节中,我们将简要介绍 MARL,并在简单环境中进行一些实验。在实验中,我们将采用一种简单的方法,让智能体共享我们正在优化的策略,但观察将从每个智能体的视角出发,并包含其他智能体位置的信息。

盼小辉丶的博客 222

基于深度学习的塑料类型图像分类研究(Python+PyTorch+Django完整实现)

本课题围绕塑料回收分拣场景,完成基于深度学习的塑料类型图像分类研究。项目使用公开塑料识别数据集,覆盖六类常见塑料,先以ResNet18预训练特征做错标检测,自动隔离可疑样本并复测清洗效果,再按类别分层划分数据集;模型选用ResNet50进行迁移学习,训练中引入标签平滑与EMA应对标签噪声,以宏平均F1,各类别召回和混淆矩阵作为主要评估指标;训练完成的模型导出为ONNX格式,由Django后端加载推理,Vue前端实现图片上传与结果展示,形成从数据,训练到应用的完整闭环,可作为深度学习方向毕业设计的实现参考。

WEIXIN_JSJBSZDS的博客 118

深入理解 PyTorch FlexAttention:从 Score Mod 到 Mask Mod 的稀疏加速之道

score_mod:对分数做数值变换# 这里演示一个简单的"按 query 位置缩放"的变换# score: 当前 (b, h, q_idx, kv_idx) 位置的分数标量# 返回变换后的分数return score * 1.0 # 恒等变换,实际可替换为任意数值操作# mask_mod:返回布尔值,True 表示该位置参与计算score_mod和mask_mod的签名都是,区别在于score_mod额外接收当前分数score并返回新分数,而mask_mod只返回布尔值。

Maxwell_Newton的博客 506

PyTorch中Tensor是什么? 与NumPy数组有什么区别?

简单来说,Tensor 是 PyTorch 中最核心的数据结构,是一个支持 GPU 加速和自动微分的多维数组。在 PyTorch 中,Tensor 可以理解为任意维度的数组容器 —— 0 维是标量,1 维是向量,2 维是矩阵,3 维及以上就是高维张量。这是训练神经网络的关键。特别地,CPU 上的 Tensor 与 NumPy 数组共享内存,一个变化会影响另一个,非常高效。掌握 Tensor 是 PyTorch 入门的第一步,理解它和 NumPy 的关系与区别,能帮你更快地上手深度学习。

teach2004的博客 176

Pytorch【8】模型保存与加载(断点续训、GPU/CPU兼容踩坑)

前面我们已经掌握:张量、自动求导、网络搭建、损失优化、Dataset+DataLoader数据流水线。模型训练好之后,我们需要把成果存下来;训练中途中断,也需要从上次位置继续训练。只保存权重✅【工业界推荐,体积小、灵活】直接保存整个模型❌【简单但不推荐,兼容性差】state_dict是一个字典,key是参数名,value是权重张量,只存参数,不存代码结构。

Beforthing的博客 212

Pytorch【10】卷积神经网络CNN实战|卷积、池化、padding、stride,CNN训练MNIST

上一篇我们用全连接层完成MNIST分类。把28×28二维图像直接Flatten成一维向量,丢失像素之间空间位置关系参数数量巨大,容易过拟合卷积层Conv、池化层Pool、激活函数卷积:滑动卷积核提取局部特征;池化:降采样、压缩特征图,减少计算量。局部感受野:卷积核只看一小块区域,符合图像特征局部相关性权值共享:一张图共用同一套卷积核,大幅减少参数量平移不变性:同一个特征,在图里左右移动依然可以被识别。

Beforthing的博客 157
上一篇: PyTorch翻译官网教程6-AUTOMATIC DIFFERENTIATION WITH TORCH.AUTOGRAD
下一篇: PyTorch翻译官网教程8-SAVE AND LOAD THE MODEL
poorCoder_
博客等级 码龄10年 129粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值