- 博客(87)
- 资源 (2)
- 收藏
- 关注
原创 【Java PyTorch深度学习】PyTorch ON Java 实现Java版本PyTorch混合精度训练 GradScaler PyTorch Java[AI Infra]高校计算机硕士研一课程
本文介绍了基于JavaCPP-PyTorch实现混合精度训练(AMP)的方法,通过AutoCast上下文管理器和GradScaler梯度缩放器,在Java中1:1复现Python PyTorch的AMP功能。混合精度训练通过FP16/BF16降低显存占用,同时使用GradScaler防止梯度下溢。文章提供了完整的Maven项目配置,包含PyTorch GPU版本和相关CUDA依赖,可直接用于工业级项目开发。该实现基于javacpp-pytorch 2.10.0-1.5.13版本,解决了Java版PyTorc
2026-05-08 20:51:24
631
1
原创 【Java PyTorch深度学习】PyTorch ON Java 首次系统性实现Java PyTorch版本模型量化训练Quantization PyTorch Java高校计算机硕士研一课程
本文介绍了基于JavaCPP-PyTorch实现PyTorch模型量化的全流程框架。该框架解决了Java端量化API缺失、显存泄漏风险等核心挑战,完整复现了动态量化、训练后静态量化(PTQ)和量化感知训练(QAT)三大核心能力。文章详细阐述了量化基础概念、框架设计思路以及关键代码实现,包括量化枚举配置、参数计算、观测器设计等核心模块。该Java量化框架严格对标Python生态的torch.ao.quantization,支持主流模型架构,为Java深度学习部署提供了完整的量化解决方案。
2026-05-03 10:54:25
588
原创 【Java PyTorch深度学习】PyTorch ON Java 首次系统性实现Java PyTorch版本混合精度训练 GradScaler PyTorch Java高校计算机硕士研一课程
本文介绍了如何使用Java实现PyTorch混合精度训练(AMP),包括AutoCast上下文管理器和GradScaler梯度缩放器。混合精度训练通过FP16/BF16降低显存占用,同时避免梯度下溢问题。文章详细讲解了环境配置、AutoCast实现(基于原生C++ API)以及GradScaler的核心逻辑(损失值缩放、梯度检查和动态调整缩放因子)。该方案完全对标Python版PyTorch的AMP功能,可直接用于工业级项目,适用于CUDA GPU和CPU环境。
2026-05-03 09:27:24
624
原创 【Java Cuda深度学习】Cuda ON Java 高性能Cuda编程入门 第二章 【AI Infra】Cuda PyTorch Java高校计算机硕士研一课程
本文介绍了CUDA在PyTorch和Java中的进阶应用,主要包括统一内存管理、CUDA事件计时和多Stream并行任务调度三大核心内容。首先详细讲解了统一内存(Unified Memory)的原理和实现,通过cudaMallocManaged实现CPU/GPU零拷贝访问,并提供了完整的Java代码示例。其次介绍了使用CUDA Event进行精确性能测试的方法,替代传统的System计时。最后阐述了多Stream异步并行的核心思想,展示了如何通过多Stream实现数据拷贝与核函数计算的重叠执行,以提升GPU
2026-05-02 21:43:35
545
原创 【Java Cuda深度学习】Cuda ON Java 高性能Cuda编程入门 第一章 【AI Infra】Cuda PyTorch Java高校计算机硕士研一课程
摘要: 本文介绍了基于Java调用CUDA进行GPU加速开发的全流程指南。通过javacpp-cuda 13.1-1.5.13环境搭建,详细讲解了CUDA设备查询、内存管理、数据传输、核函数调用等核心模块的实现。内容包含Maven依赖配置、JVM参数优化,并提供了完整的Java代码示例,涵盖设备信息获取(如显存容量、计算能力)、主机与设备间数据拷贝、向量加法核函数调用及错误处理机制。特别针对Java开发者,给出了环境搭建中的常见问题解决方案,帮助快速掌握CUDA并行计算在Java中的集成与应用。
2026-05-02 21:35:39
734
原创 【Java PyTorch深度学习】PyTorch ON Java 首次系统性实现Java PyTorch版本FSDP分片分布式训练【AI Infra】PyTorch Java高校计算机硕士研一课程
摘要:本文探讨了在Java生态下实现PyTorch FSDP(全分片数据并行)分布式训练的方法,旨在解决Python训练与Java部署的生态割裂问题。文章首先对比了DDP与FSDP的核心差异,指出FSDP通过参数分片显著降低单卡内存占用,适合超大规模模型训练。随后详细介绍了基于JavaCPP-PyTorch的FSDP实现方案,包括分布式初始化、模型分片包装、前向/反向传播流程等关键技术点,并提供了完整的环境配置指南(Linux系统、JDK11+、Gloo/NCCL后端)和Maven依赖配置。最后给出了适配F
2026-05-01 18:00:33
544
原创 【Java PyTorch深度学习】PyTorch ON Java 首次系统性实现Java PyTorch版本DDP并行分布式训练【AI Infra3.】PyTorch Java高校计算机硕士研一课程
本文介绍了使用Java语言实现PyTorch分布式数据并行(DDP)训练的全过程。主要内容包括: 环境配置:详细说明了Java PyTorch开发所需的环境配置,包括JDK 26.0.1、PyTorch Java依赖、CUDA 13.1等,并提供了Maven依赖配置示例。 核心实现:展示了分布式采样器(DistributedSampler)的Java代码,该采样器负责将数据集划分到不同进程中,支持随机打乱和分片处理。 模型定义:提供了一个简单神经网络(SimpleNet)的Java实现框架,包含三个全连接层
2026-05-01 10:29:21
727
原创 Cuda ACTION ON JAVA lesson 01
这篇文章展示了多个Java调用CUDA的示例代码,主要包括以下几个核心功能: 基本CUDA操作:设备同步、流创建/销毁、设备设置、事件计时等 内存管理:显存分配/释放、主机与设备内存拷贝 设备信息查询:CUDA设备数量、显存使用情况 版本检查:CUDA运行时和驱动版本 矩阵运算框架:预留了矩阵乘法的实现结构 这些示例演示了如何使用JavaCPP库进行CUDA编程,包括内存管理、流控制、事件计时等关键操作。代码展示了如何将Java与CUDA结合,为高性能计算提供了Java环境的解决方案。
2026-04-27 08:36:43
124
5
原创 【Scala PyTorch深度学习】PyTorch On Scala系列课程 第十四章 29 PyTorch模型扩展自定义Module【AI Infra3】[PyTorch Scala硕士研一课程】
本文介绍了如何在PyTorch Scala中通过继承torch.nn.Module来创建自定义模块。主要内容包括: 自定义模块的核心构成: __init__方法用于定义和初始化子模块、参数和缓冲区 forward方法实现具体计算逻辑 关键实践建议: 在__init__中调用super().__init__() 使用register_buffer管理不可学习状态 保持模块功能专注和可组合 清晰定义输入输出格式 示例实现了一个简单的缩放点积注意力模块,展示了如何封装复杂计算逻辑。 这种自定义模块方法提升了代码的
2026-04-24 23:07:16
1092
6
原创 【Scala PyTorch深度学习】PyTorch On Scala系列课程 第十章 20 :高级神经网络Transformer【AI Infra 3.0】[PyTorch Scala硕士研一课程]
本文介绍了PyTorch的自定义扩展与互操作性,重点讲解了如何构建C++扩展来提升计算性能、集成现有C++库或实现专用算法。主要内容包括:使用torch::Tensor类进行C++张量操作,通过setup.py设置构建流程,编写包含Pybind11绑定的C++源文件,以及编译和使用自定义扩展。此外还简要提及了与Autograd集成的方法,需要定义前向和后向传播来实现自动微分。通过这些技术,开发者可以将自定义代码和外部库无缝集成到PyTorch工作流程中。
2026-04-24 23:04:39
456
原创 【Scala PyTorch深度学习】PyTorch On Scala系列课程 第十三章 27 :PyTorch全分片数据并行(FSDP)【AI Infra】[PyTorch Scala硕士研一课程]
全分片数据并行(FSDP)是PyTorch中一种分布式训练方法,通过分片模型参数、梯度和优化器状态来大幅降低GPU内存占用。相比传统的DDP(需要每个GPU存储完整模型副本),FSDP仅在计算时临时重建完整参数层,其余时间仅保留本地分片。其核心流程包括:初始化分片、前向传播时收集参数、反向传播时归约分片梯度、优化器仅更新本地分片。PyTorch通过FullyShardedDataParallel类实现FSDP,支持自动封装策略、混合精度和CPU卸载等配置选项,适用于训练超大规模模型(如数十亿参数)。典型实现
2026-04-23 11:51:41
704
原创 【Scala PyTorch深度学习】PyTorch On Scala系列课程 第13章 26 :PyTorch分布式训练【AI Infra 3.0】[PyTorch Scala硕士研一课程]
本文介绍了PyTorch中的分布式训练技术,重点讨论了数据并行方法DistributedDataParallel(DDP)。DDP通过多进程方式在多个GPU上复制模型,每个进程处理不同数据分片,并使用高效的All-Reduce通信操作同步梯度,从而克服单GPU训练的内存和时间限制。文章详细阐述了DDP的工作流程,包括分布式环境初始化、模型复制、数据划分、梯度计算与平均等关键步骤,并指出DDP通过将通信与计算重叠来提升性能。此外,还简要提及了其他并行策略如模型并行和完全分片数据并行(FSDP),为大规模深度学
2026-04-23 11:48:04
989
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第十二章 25 :PyTorch算子模型优化【AI Infra 3.0】[PyTorch Scala 硕士研一课程]
本文介绍了如何通过CuPy和Numba优化PyTorch中的计算瓶颈。主要内容包括:1)使用CuPy加速GPU计算,通过DLPack标准实现PyTorch张量与CuPy数组的高效转换;2)利用Numba进行即时编译,通过装饰器加速CPU密集型计算;3)结合Numba的CUDA支持编写GPU核函数。这些方法适用于标准PyTorch函数无法满足性能需求的场景,如复杂数组操作或自定义计算步骤,能有效提升计算效率而无需构建完整的C++扩展。
2026-04-22 20:53:07
612
原创 【Scala PyTorch深度学习】PyTorch On Scala系列课程 第十二章 24:PyTorch模型部署和性能优化【AI Infra 3.0】[PyTorch Scala硕士研一课程]
本文介绍了PyTorch模型部署和性能优化的关键技术,重点讲解了TorchScript的两种序列化方法:追踪和脚本化。追踪通过记录模型在特定输入下的操作序列生成静态图,简单高效但不支持数据依赖的控制流;脚本化则直接编译Python源码,能正确处理条件语句和循环等复杂逻辑。文章通过代码示例展示了两种方法在简单模型和控制流模型中的不同表现,帮助开发者根据模型特点选择合适的序列化方案,为后续模型部署和优化奠定基础。
2026-04-22 20:35:37
811
原创 【Scala PyTorch深度学习】PyTorch On Scala系列课程 第十一章 23 :PyTorch混合精度训练与量化【AI Infra 3.0】[PyTorch Scala硕士研一课程]
本文介绍了PyTorch中混合精度训练的实现方法,重点讲解了torch.cuda.amp模块的使用。混合精度训练通过在FP16和FP32之间智能切换,在保持模型稳定性的同时提升训练速度和减少内存占用。文章详细说明了autocast上下文管理器如何自动管理操作精度,以及GradScaler如何通过梯度缩放解决FP16下溢问题。最后提供了完整的训练循环示例代码,并讨论了混合精度训练的优势、硬件要求以及保存检查点时的注意事项。这种方法在支持Tensor Cores的NVIDIA GPU上能显著提升训练效率。
2026-04-21 09:46:35
534
原创 【Scala PyTorch深度学习】PyTorch On Scala系列课程 第十一章 22 :PyTorch优化技术与训练策略【AI Infra 3.0】[PyTorch Scala硕士研一课程]
深度学习优化与训练策略摘要 本章重点介绍提升深度学习模型训练效率的高级技术,包括优化算法改进、动态学习率调度和训练优化策略。主要内容涵盖: 高级优化器: AdamW优化器:解耦权重衰减,避免自适应学习率干扰正则化效果 Lookahead优化器:通过快慢权重机制提高训练稳定性 RAdam优化器:通过修正项解决训练初期自适应学习率不稳定的问题 动态学习率调度: 余弦退火策略:按余弦曲线平滑调整学习率 预热阶段技术:训练初期逐步提高学习率 其他PyTorch内置调度策略 训练优化策略: 梯度裁剪:防止梯度爆炸 梯
2026-04-21 09:42:13
693
原创 【Scala PyTorch深度学习】PyTorch On Scala系列课程 第十章 21 :PyTorch微分【AI Infra 3.0】[PyTorch Scala 高校计算机硕士研一课程]
本文介绍了神经常微分方程(Neural ODEs)和模型无关元学习(MAML)两种前沿深度学习方法的原理与实现。神经常微分方程通过连续时间动态系统建模神经网络,相比传统离散层网络具有内存效率高、自适应计算等优势,特别适合处理不规则时间序列数据。MAML则是一种元学习方法,通过双层优化训练模型使其能够快速适应新任务,在少样本学习场景下表现优异。两种方法均基于PyTorch实现,通过torchdiffeq等工具包提供了高效的计算支持。这些技术拓展了深度学习在连续动态系统建模和小样本学习等领域的应用潜力。
2026-04-20 21:32:12
412
原创 【Scala PyTorch深度学习】PyTorch On Scala系列课程 第十章 20 :高级神经网络Transformer【AI Infra 3】[PyTorch Scala 硕士研一课程]
PyTorch实现进阶神经网络结构 本章介绍PyTorch实现多种现代神经网络架构的方法,包括Transformer、图神经网络、归一化流、神经ODE和元学习。重点讲解了Transformer的核心组件实现: 输入表示:通过词嵌入层和位置编码处理序列输入,位置编码采用正弦函数注入位置信息。 多头注意力机制:实现缩放点积注意力,将输入投影为查询、键和值向量,通过多组权重矩阵实现并行注意力计算,最后合并结果。 编码器层:包含自注意力层和前馈网络,使用残差连接和层归一化稳定训练。 这些组件可灵活组合构建完整Tra
2026-04-20 21:30:20
901
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第九章 18 :PyTorch求导机制与自动微分系统【AI Infra 】[PyTorch Scala 硕士研一课程]
虽然 PyTorch 的autograd引擎能自动处理各种内置操作的微分,但有时你会需要更多控制,或需要为 PyTorch 未知的操作定义梯度。实现 PyTorch 中没有的新颖数学操作。集成来自外部库(例如:自定义 C++ 或 CUDA 核,稍后介绍)的代码,以执行部分计算。通过提供比自动推导更高效的梯度计算来优化性能。为数学上不可微分的操作定义“梯度”,或你希望覆盖标准导数的情况(例如:对离散操作使用直通估计器)。对于这些情况,PyTorch 提供了一种机制,通过继承。
2026-04-19 12:40:30
666
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第九章 19 :PyTorch高阶梯度计算【AI Infra 3.0】[PyTorch Scala 硕士研一课程]
本文介绍了PyTorch中高阶梯度计算的原理与应用。主要内容包括:1)高阶梯度概念,如一阶导数的导数构成二阶导数,多变量函数中涉及Hessian矩阵;2)高阶梯度在优化算法、曲率分析、元学习等高级场景中的重要作用;3)使用torch.autograd.grad函数实现高阶梯度计算的技术细节,重点解析了create_graph参数的关键作用;4)通过具体示例演示了二阶导数和Hessian-向量积的计算方法。文章还通过计算图对比说明了不同参数设置下的梯度计算差异,为深度学习中的高阶微分应用提供了实用指导。
2026-04-19 12:39:35
525
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第八章 17 :模型评估【AI Infra 3.0】[PyTorch Scala硕士研一课程]
本文介绍了如何在PyTorch训练和评估过程中实现基础指标记录。主要内容包括: 记录指标的重要性:用于性能追踪、调试、模型比较和可视化分析 关键指标:训练/验证损失、准确度及其他任务特定指标 实现方法: 训练循环中初始化累加器,计算批次损失和准确度 评估循环中使用no_grad()禁用梯度计算 通过轮次平均获取整体指标 指标存储:使用列表/字典保存训练和验证的损失、准确度等指标 应用场景:为TensorBoard等可视化工具提供数据基础,支持模型优化决策 这些基础记录实践是模型开发的重要环节,能有效监控训练
2026-04-17 11:57:23
523
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第八章 16 :模型监控与调试【AI Infra 3.0】[PyTorch Scala 硕士研一课程]
监控与调试PyTorch模型 本章介绍了PyTorch模型开发中常见错误的诊断与解决方法。主要内容包括: 张量形状不匹配:最常见的错误类型,通常发生在层间输出与输入形状不一致时。解决方法包括检查各层输出形状,正确展平张量,并确保线性层的输入特征数与前一层的输出匹配。 设备不匹配问题:当模型和输入数据位于不同设备(CPU/GPU)时会出现错误。调试时需要统一设备,使用.to(device)方法确保模型和输入数据位于相同设备上。 损失函数与目标形状/类型:选择正确的损失函数并确保模型输出和目标标签具有预期形状和
2026-04-17 11:55:53
550
原创 基于Lance java sdk 实现 千问 Qwen3.5 2B模型[safetensors格式] 加载并实现推理 突破Java大模型部署壁垒:推理全流程实现与技术解析【Java PyTorch】
摘要:本文介绍了Java大模型部署领域的重大突破,成功实现Qwen3.5大模型在Java端的全流程推理,全程不依赖Python脚本。通过六大关键技术突破,包括Safetensors格式文件Zero-Copy转换、Hugging Face模型配置解析、高效加载5GB级模型等,实现了从模型加载到推理输出的纯Java闭环。文章详细阐述了推理实现的核心步骤,包括模型下载、配置解析、模型加载、分词器构建和推理执行,并展示了相关配置文件内容。这一成果标志着Java语言正式进入大模型部署第一梯队。
2026-04-16 16:45:41
1026
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第七章 14 :常用模型CNN RNN Pooling【AI Infra】[PyTorch Scala 硕士研一课程】
本文摘要介绍了PyTorch中卷积神经网络(CNN)的核心概念与实现方法。主要内容包括: CNN通过卷积层(nn.Conv2d)和池化层(nn.MaxPool2d)处理图像数据,有效捕捉空间特征并减少参数数量; 典型CNN架构由"卷积-激活-池化"块堆叠而成,最后连接全连接层进行分类; 文章详细说明了PyTorch中关键层的参数设置,如卷积层的通道数、核大小,以及池化层的窗口尺寸; 提供了完整的SimpleCNN类实现示例,展示了一个包含两层卷积和池化的简单网络结构,适用于MNIST等图
2026-04-16 09:57:58
732
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第七章 15 :常用神经网络RNN LSTM GRU 【AI Infra】[PyTorch Scala硕士研一课程]
本文介绍了循环神经网络(RNN)的基本原理及其在序列数据处理中的应用。RNN通过引入循环机制和隐状态来捕捉序列中的时序依赖关系,适用于自然语言处理、语音识别、时间序列分析等任务。文章详细讲解了RNN的工作原理,包括隐状态的计算过程和时间展开的可视化表示。随后介绍了如何在PyTorch中实现一个简单的RNN模型,包括nn.RNN模块的参数设置、输入输出张量的形状要求,并提供了一个基本的RNN模型代码框架。最后指出简单RNN在处理长序列时可能面临的梯度消失/爆炸问题,为后续介绍LSTM和GRU等改进模型做铺垫。
2026-04-16 09:57:38
542
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第六章 13 :模型训练高阶【AI Infra 3.0】[PyTorch Scala 硕士研一课程]
本文介绍了PyTorch中优化器更新权重的关键步骤和评估循环的实现。主要内容包括: 优化器更新权重:通过optimizer.step()使用计算好的梯度更新模型参数,不同优化器采用不同更新规则(如SGD、Adam)。 梯度清零:必须调用optimizer.zero_grad()清除前一次迭代的梯度,避免梯度累积导致错误更新。 评估循环实现: 与训练循环不同,评估时不计算梯度、不反向传播、不更新权重 需调用model.eval()切换模型模式 使用torch.no_grad()上下文管理器提高效率 独立评估循
2026-04-15 00:16:29
618
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第六章 12 :模型训练【AI Infra 3.0】[PyTorch Scala 硕士研一课程]
本文介绍了PyTorch中实现神经网络训练循环的关键步骤。训练循环由两个嵌套循环组成:外层循环控制训练周期数,内层循环处理数据批次。每个批次迭代包含6个核心步骤:(1)获取数据批次,(2)梯度清零,(3)前向传播计算预测,(4)计算损失,(5)反向传播计算梯度,(6)优化器更新权重。 在训练前需要准备三个核心组件:(1)实例化模型并将其移动到合适设备(CPU/GPU),(2)定义损失函数(如CrossEntropyLoss或MSELoss),(3)配置优化器(如SGD或Adam)并设置学习率。训练过程中使用
2026-04-15 00:14:10
809
原创 【Scala PyTorch 深度学习】PyTorch On Scala系列课程 第五章 11 :数据集高级 Dataloader【AI Infra 3.0】[PyTorch Scala硕士研一课程]
本文介绍了PyTorch中DataLoader的核心功能与使用方法。DataLoader通过批处理、数据打乱和并行加载三大机制,显著提升深度学习训练效率。文章详细讲解了DataLoader的基本用法,包括批次处理策略(drop_last选项)、数据打乱的重要性,以及通过num_workers实现并行数据加载的优化技巧。特别针对GPU训练场景,还介绍了使用pin_memory加速CPU到GPU数据传输的方法。文中包含Scala代码示例,展示了如何创建和迭代DataLoader,并解释了各参数对训练性能的影响,
2026-04-14 19:55:12
535
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第五章 10 :数据集【AI Infra 3.0】[PyTorch Scala 硕士研一课程]
本文摘要: PyTorch的torch.utils.data模块提供了高效管理数据流的工具,包括Dataset和DataLoader类,用于解决深度学习中的数据处理挑战。通过自定义Dataset类,可以组织数据并实现按需加载,而DataLoader支持批处理、并行加载和数据增强。这些工具优化了内存使用和I/O效率,确保GPU持续获得数据,避免训练瓶颈。示例展示了如何构建简单的内存数据集,并强调了处理大型磁盘数据的灵活性。该模块是构建高效深度学习流程的核心组件。
2026-04-14 19:52:27
753
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第四章 09 :神经网络进阶【AI Infra 3.0】[PyTorch Scala 硕士研一课程]
文章摘要: PyTorch Scala教程介绍了如何使用nn.Sequential容器简化线性神经网络模型的构建。该容器允许按顺序堆叠层和激活函数,特别适合全连接网络等简单架构。教程展示了两种定义方式:直接传递模块和使用OrderedDict命名层,后者提高了代码可读性。文中还详细讲解了损失函数的选择,重点介绍了回归任务中的均方误差(MSELoss)和平均绝对误差(L1Loss)两种常用损失函数,包括它们的数学公式和Scala实现示例。nn.Sequential虽然简化了模型定义,但不适用于包含跳跃连接等复
2026-04-13 11:15:07
631
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第四章 08 :神经网络【AI Infra 3.0】[PyTorch Scala 硕士研一课程]
文章摘要: PyTorch Scala教程第四章重点介绍了如何使用torch.nn模块构建神经网络模型。核心内容包括:1) nn.Module基类的使用方法,作为所有神经网络组件的基础蓝图;2) 自定义网络架构的实现步骤,包括在__init__中定义层结构和在forward中指定数据流;3) 参数管理系统,通过nn.Parameter自动跟踪可学习参数;4) 模块提供的关键功能如参数访问、设备转移和训练模式切换。教程通过简单线性回归模型的示例代码,展示了如何继承nn.Module创建自定义网络,并解释了前向
2026-04-13 11:10:39
673
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第三章 07 :张量梯度【AI Infra 3.0】[PyTorch Scala硕士研一课程]
PyTorch梯度访问与禁用摘要 PyTorch通过.grad属性访问梯度,该属性存储了调用backward()方法后计算出的梯度值,主要用于叶节点张量。梯度形状与原张量相同,表示标量对各元素的偏导。示例展示了如何计算并访问简单线性运算的梯度。 禁用梯度追踪在模型评估等场景中尤为重要,可提升性能和节省内存。主要方法包括: torch.no_grad()上下文管理器:块内所有操作不追踪梯度 .detach()方法:创建脱离计算图的新张量 示例显示在评估循环中使用no_grad()可避免不必要计算,而detac
2026-04-11 21:13:15
781
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第三章 06 :张量自动微分【AI Infra 3.0】[PyTorch Scala 硕士研一课程]
有效地训练神经网络需要调整模型参数以最小化损失函数,这通常使用梯度下降或其变体。这个过程的是计算损失函数相对于每个参数的梯度,数学上表示为损失 LL和参数 ww的 ∂L∂w∂w∂L。对于复杂模型,手动推导和实现这些梯度计算是不切实际的。本章介绍 PyTorch 的自动微分引擎 Autograd,它旨在自动计算这些梯度。我们将PyTorch 如何在对张量执行操作时动态构建计算图。你将学习如何使用标记张量以进行梯度计算,使用触发反向传播以计算梯度,以及查看存储在.grad属性中的结果梯度。
2026-04-11 21:10:37
531
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第二章 05 :张量广播机制【Ai Infra 3.0】[PyTorch Scala 硕士研一课程]
PyTorch广播机制与张量数据类型摘要 广播机制是PyTorch中自动扩展张量维度以执行逐元素运算的重要特性。它通过从右到左比较维度实现:当维度相等、其中一个为1或一个张量缺少该维度时,可进行广播。广播能简化代码并优化内存,常见于添加偏置、归一化等操作。例如,标量可广播到任意形状,行/列向量可分别沿行/列扩展。 **张量数据类型(dtype)**决定元素类型和内存占用,如float32和int64。合理选择dtype对平衡计算资源与数值精度至关重要。默认情况下,PyTorch对浮点数使用float32,整
2026-04-10 09:54:31
457
原创 【Scala PyTorch深度学习】PyTorch On Scala 系列课程 第二章 04 :张量高级操作【AI Infra 3.0】[PyTorch Scala硕士研一课程]
本文摘要:PyTorch Scala课程第二章介绍了高级张量操作,重点讲解张量索引与切片技术。内容包括基本索引方法(单元素访问与修改)、多维张量切片(使用start:stop:step语法)、布尔索引(基于条件筛选数据)以及整数数组索引。特别强调切片操作会共享原始张量存储空间,而布尔索引则生成副本。这些操作对深度学习数据处理至关重要,可实现精确数据选择、形状重构和条件筛选。掌握这些技巧有助于高效处理多样化数据格式和复杂计算需求。
2026-04-10 09:51:44
513
原创 【Scala PyTorch深度学习】PyTorch On Scala系列课程 第一章 03 :张量基本操作【AI Infra 3.0】[PyTorch Scala 硕士研一课程]
本文介绍了PyTorch中的基本张量操作,包括按元素算术运算(加法、减法、乘法、除法、幂运算)、就地操作、标量操作以及常用数学函数(如平方根、指数、对数)。此外,还讲解了归约操作(求和、平均值、最大值/最小值)和比较/逻辑操作。这些操作是神经网络计算的基础,掌握它们对深度学习至关重要。文章通过Scala代码示例展示了各种操作的具体实现,并强调了就地操作的内存效率及其潜在风险。
2026-04-09 20:49:48
500
原创 【Scala PyTorch深度学习】PyTorch On Scala3系列课程 第一章 02 :张量操作【AI Infra 3.0】[PyTorch Scala 硕士研一课程]
本文摘要: PyTorch张量是多维数组数据结构,是深度学习中的核心概念。张量可以表示标量(0维)、向量(1维)、矩阵(2维)以及更高维数据。文章介绍了张量的创建方法:1)从Python列表或NumPy数组转换;2)使用zeros()、ones()、empty()等函数创建特定形状的张量;3)生成随机值张量;4)基于现有张量创建属性相同的新张量。PyTorch张量支持GPU加速和自动微分,使其特别适合深度学习任务。
2026-04-09 20:46:58
496
原创 【Cpp C++ LibTorch深度学习】PyTorch On Cpp 系列课程 第二章 05 :张量广播机制【Ai Infra 3.0】[PyTorch C++ 硕士研一课程]
PyTorch Autograd 自动微分系统摘要 PyTorch 的 Autograd 系统通过动态构建计算图实现自动微分,高效计算神经网络训练所需的梯度。该系统基于反向模式自动微分,利用链式法则从输出反向传播梯度。 核心机制: 计算图动态记录张量运算,节点表示运算/张量,边表示数据流 通过requires_grad=True标记需要计算梯度的张量 调用.backward()触发反向传播,自动计算梯度并存储在.grad属性中 关键特性: 动态图结构支持灵活控制流 反向模式AD适合深度学习(少量输出/大量输
2026-04-08 09:50:59
683
原创 【Cpp C++ LibTorch深度学习】PyTorch On C++ 系列课程 第二章 05 :张量广播机制【Ai Infra 3.0】[PyTorch C++ 硕士研一课程]
PyTorch广播机制是一种自动扩展张量维度以执行逐元素操作的规则系统。其核心规则包括:维度相等、其中一个维度为1或缺少维度时自动扩展。广播过程从最右侧维度开始对齐比较,结果张量形状取各维度最大值。典型应用场景包括标量与张量运算、行/列向量与矩阵运算等。广播机制避免了显式数据复制,提高了内存效率。例如,形状[3,1]和[4]的张量通过维度扩展可广播为[3,4]的形状进行计算。这种机制显著简化了张量操作代码,是PyTorch高效数值计算的重要特性。
2026-04-08 09:47:35
751
原创 【Cpp LibTorch深度学习】PyTorch On CPP 系列课程 第二章 04 :张量高级操作【AI Infra 3.0】[PyTorch CPP硕士研一课程]
PyTorch高级张量操作摘要 本章重点讲解PyTorch中的高级张量操作方法,包括: 索引与切片:通过整数索引和切片语法精确访问/修改张量元素,支持多维张量操作。 张量重构:使用view()、reshape()和permute()函数改变张量形状而不改变数据内容。 张量组合与分割:通过cat()、stack()、split()和chunk()实现张量的合并与拆分。 广播机制:自动处理不同形状张量间的运算,使形状兼容的张量能够进行计算。 数据类型转换:支持不同数值类型(如float、int)间的转换。 设备
2026-04-07 23:32:10
409
idea 颜色配置
2018-10-22
ffmpeg-libs centos
2018-10-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅