将pytorch中变量的梯度为 nan 的替换成 1 还是 0?

PyTorch全连接神经网络实战:从构建、优化到超参数调优 人工神经网络(ANN)是深度学习的基石概念,其核心在于前向传播的张量计算与反向传播的梯度更新机制。理解权重初始化、激活函数选择、学习率与批量大小的耦合关系等原理,直接决定模型收敛性与泛化能力。PyTorch作为主流动态图框架,通过nn.Module、autograd和torch.optim三大模块,为ANN提供了高度可控的实现路径——这不仅是API调用,更是对计算图生命周期、内存管理及数值稳定性的工程实践。典型应用场景包括结构化数据分类(如Wine Quality)、特征提取基线构建及算法岗面试深度考察。本 阅读详情

替换成0,则变量保持不动

0: xtensor([1.0000, 2.0000, 3.0000, 4.5000], device='cuda:0', requires_grad=True)
0: xtensor([1.0000, 2.0000, 3.0000, 4.5000], device='cuda:0', requires_grad=True)

替换成1,变量会变化

0: xtensor([1.0000, 2.0000, 3.0000, 4.5000], device='cuda:0', requires_grad=True)
0: xtensor([1.0000, 2.0000, 3.0000, 4.5000], device='cuda:0', requires_grad=True)

代码如下:

import torch
import numpy as np
import torch.optim as optim

torch.autograd.set_detect_anomaly(True)

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
x = torch.tensor([1.0, 2.0, 3.0,4.5], dtype=torch.float32, requires_grad=True, device=device)

y1 = x*2
y2 = x**3
print(f'x{x}')
print(f'y1{y1}')
print(f'y2{y2}')

optimizer = optim.Adam([x], lr=1)

def replace_gradients_zero(grad):  
    return torch.where(torch.ones_like(grad, dtype=torch.bool), torch.zeros_like(grad), grad)  

def replace_gradients_one(grad):  
    return torch.where(torch.ones_like(grad, dtype=torch.bool), torch.ones_like(grad), grad)  

for i in range(1):
    print(f'{i}: x{x}')
    optimizer.zero_grad()
    loss = (y1-y2).sum()

    for param in [x]:  
        param.register_hook(replace_gradients_zero) 

    loss.backward()
    optimizer.step()
    print(f'{i}: x{x}')
PyTorch实现MAML元学习:小样本快速适应实战 元学习(Meta-Learning)是一种让模型学会‘如何学习’的范式,核心解决小样本场景下的快速任务适应问题。其原理在于通过双层优化机制,在大量相似子任务上训练出具备强泛化初始化参数的模型,使新任务仅需极少样本(如1-shot)和几步梯度更新即可高效收敛。技术价值体现在显著降低标注依赖、缩短模型迭代周期,并提升冷启动能力。典型应用场景包括工业缺陷检测、医疗影像分析、边缘设备个性化适配等数据稀缺领域。本文聚焦optimization-based元学习标杆方法MAML,基于PyTorch在MNIST上完成端到 阅读详情

相关推荐

手撸PyTorch迷你词向量:基于Autoencoder的CBOW实现与教学解析

词向量是自然语言处理的基础表征技术,其本质是将离散词汇映射为低维稠密向量,通过上下文预测任务学习语义相似性。核心原理在于构建可微分的嵌入映射函数,利用负采样或softmax优化多分类损失,使语义相近词在向量空间中距离更近。该技术具有显著工程价值:轻量、可控、可调试,特别适用于小语种、专业领域或教学场景。相比BERT等黑盒大模型,从零实现能精准归因维度设计、上下文窗口与训练稳定性等关键因素。本文聚焦Autoencoder结构化CBOW范式,以200行PyTorch代码完整呈现词表构建、张量形状推演、梯度流向追

dihuangxiu8828的博客 378

pytorch 判断并替换 nan

判断是否有 nan torch.any(torch.isnan(a)) 利用 torch.where() 函数替换所有 nan where() 函数有三个输入值,第一个是判断条件,第二个是符合条件的设置值,第三个是不满足条件的设置值。 a = torch.Tensor([[1, 2, np.nan], [2, np.nan, 4], [3, 4, 5]]) a = torch.where(torch.isnan(a), torch.full_like(a, 0), a) ...

qq_34372112的博客 2万+

Hadamard积:逐元素相乘的对齐原理与深度学习实战

Hadamard积(逐元素相乘)是张量计算中最基础且高频的对齐运算,其核心在于要求输入张量严格同形同维,不引入求和、不改变维度、不破坏空间结构。它并非矩阵乘法的简化替代,而是实现像素级调控、门控机制、注意力加权与概率融合等任务的数学基石。在PyTorch和NumPy中,`*`操作符默认即为此运算,支撑着反向传播中的梯度保真传递与零开销更新。理解其‘无广播定义、有广播支持’的本质,可规避90%的shape mismatch与梯度异常问题,并成为调试神经网络、优化图像合成与构建可解释概率模型的关键能力。

weixin_30847939的博客 393

Pytorch 处理 inf 和 nan 数值

假设我们有这样的一个tensor,我们需要把其中的 inf 和 nan 填充成别的数字 import torch import numpy as np a = torch.Tensor( [[1, 2, np.nan], [np.inf, np.nan, 4], [3, 4, 5]]) ''' tensor([[1., 2., nan], [inf, nan, 4.], [3., 4., 5.]]) ''' 把 nan......

知识搬运者 3575

pytorch nan解决方法笔记

pytorch nan解决方法笔记

jacke121的专栏 5875

PyTorch版分层变分自编码器(HVAE)完整可训练实现,含多级隐变量建模与采样支持

一套开箱即用的分层变分自编码器(HVAE)PyTorch实现,包含核心模型hvae.py、类型定义types_.py、基础VAE框架base_vae.py以及训练入口main.py。支持2层及以上隐变量结构,每层可独立参数化先验与后验分布,适配Ladder VAE类设计思路。代码完全基于原生PyTorch 1.9+编写,不依赖TensorFlow、JAX或其他深度学习框架,仅需torch、numpy等基础库。提供端到端训练流程:从数据加载、ELBO损失计算、重参数化采样,到生成样本与潜变量可视化接口。模型模

gin88的博客 196

pytorch笔记: 处理inf和nan数值

import torch import numpy as np a = torch.Tensor( [[1, 2, np.nan], [np.inf, np.nan, 4], [3, 4, 5]]) ''' tensor([[1., 2., nan], [inf, nan, 4.], [3., 4., 5.]]) ''' 假设我们有这样的一个pytorch tensor,我们需要把其中的inf和nan填充成别的数字 1把nan值设置为0 ..

qq_40206371的博客 3706

使用HFSS仿真分支波导耦合器

本文介绍了分支波导耦合器的HFSS仿真设计过程。首先给出了器件关键参数(t=0.365mm,l=1.600mm等),详细说明了建模步骤:包括创建中心分支、设置变量参数、镜像复制两侧分支、矩形波导端口设计等操作。重点阐述了激励端口设置方法,包括四个端口的积分线绘制,以及求解频率设定。最后展示了S参数、幅度平衡度和相位差等关键性能指标的仿真结果提取方法。整个设计过程体现了HFSS在微波器件仿真中的参数化建模和结果分析能力。

shao666888的博客 180

Pytorch tensor避免nan解决办法

使用pytorch处理数据运算是,如矩阵涉及乘除法,如矩阵中存在nan数据,则结果中存在nan,解决方案是使用torch.where()将nan值替换为0或其他值: torch.where(torch.isnan(a), torch.full_like(a, 0), a)

weixin_38076506的博客 7782

两张 300I Duo 部署 Qwen3.5‑32B

开发者成功使用两张华为300IDuo(共4颗Ascend310P3芯片)部署Qwen3/Qwen3.5的30B/32B模型,并公开详细步骤。关键点包括:硬件需两张300IDuo(每芯片44GB显存),软件需CANN≥24.1和MindIE2.3.0专用镜像。部署流程涵盖驱动安装、模型下载(需修改为FP16格式)、容器启动、张量并行配置(TP=4)等环节。实测显示每芯片显存占用20-35GB,系统稳定运行。该方案已在知乎等平台验证可行,适用于Qwen3.5-32B等同类模型。

evering的博客 2255

OpenHarmony系统参数权限配置避坑指南:从param get/set失败到SELinux标签实战

本文深入解析OpenHarmony系统参数权限配置的常见问题与解决方案,涵盖DAC和SELinux双重权限控制机制。通过实战案例演示如何配置`param get/set`权限,解决'Permission denied'错误,并提供三方应用访问参数的安全方案,帮助开发者高效完成系统调试与优化。

weixin_27013291的博客 449

PyTorch线性回归:从底层原理到可调试工程实践

线性回归是机器学习最基础的监督学习模型,其核心在于理解参数优化、梯度计算与损失最小化的数学本质。PyTorch作为支持自动微分的张量计算框架,将前向传播、反向传播、参数更新等过程显式暴露,帮助学习者建立对模型‘如何思考’的直觉。相比封装完善的sklearn,PyTorch实现虽需手动管理张量维度、设备迁移、梯度清零等细节,却为后续深度学习(如CNN、Transformer)和可微分编程奠定关键认知基础。本文聚焦Linear Regression在PyTorch中的完整实现路径,涵盖数据预处理、模型定义、训练

weixin_30947043的博客 371

ROS 入门教程:小乌龟仿真器和基础操作

小乌龟仿真器和ros基础操作

zlflll的博客 4125

手写VGG模型:从PyTorch底层理解CNN特征提取范式

卷积神经网络(CNN)是计算机视觉的基石,其核心在于通过多层卷积与非线性激活协同提取空间层次化特征。VGG作为经典模型,以3×3小卷积核堆叠和深度分层设计,确立了‘小核深堆’这一被广泛复用的特征提取范式。其原理不仅体现为参数量与感受野的平衡,更在于通道数链式传递、特征图尺寸动态推导等底层约束,直接决定模型可调试性与边缘部署可行性。在迁移学习、轻量化改造及跨域应用(如时序图像化)中,手动实现VGG能深度暴露nn.Sequential结构、AdaptiveAvgPool2d适配机制与权重初始化差异等关键技术支点

weixin_33713707的博客 568

Windows NPS与华为、华三、思科设备RADIUS认证实战指南

本文详细介绍了Windows NPS与华为、华三、思科设备RADIUS认证的实战配置指南。通过NPS服务器统一管理网络设备认证,实现企业级安全访问控制,涵盖基础配置、设备对接及故障排查方法,助力管理员提升网络安全管理效率。

weixin_29284201的博客 505

Python读取Matlab v7.3数据

文章目录Matlab保存数据Python读取 v7.3 Mat Matlab保存数据 在matlab设置中,常规->MAT文件,选择MATLAB版本7.3或更高版本保存数据。 注意保存数据的文件名为 corre.mat,保存的数据数组为data; 后面python的读取中会用到这两个参数 Python读取 v7.3 Mat 先安装hdf5storage库,再使用以下代码,就可以读取到mat中的数据,注意 import hdf5storage import numpy as np dataDi

weixin_43121914的博客 1081

六步训练加速实战:混合精度、梯度检查点与分布式通信优化

深度学习模型训练中的性能瓶颈,本质是计算密度低、内存带宽吃紧和通信开销失控三重矛盾。混合精度训练通过FP16/FP32协同降低显存占用与计算延迟,梯度检查点以可控时间代价显著缓解激活值内存压力,二者结合可实现显存下降超40%、单步耗时压缩近半。叠加数据加载优化(pin_memory+prefetch+torch.compile)、结构化剪枝、自适应学习率调度及PowerSGD通信压缩,构成端到端的工业级训练流水线优化范式。该方案适用于CV/NLP从头训练场景,无需修改模型架构,支持PyTorch 2.0+开

dihuangxiu8828的博客 290

智能车图像处理24-进阶篇16--三叉路口的判断

这篇文章主要讲述图像处理中如何判断三叉路口并进行补线操作。

taiyuezyh的博客 1万+

FP8动态缩放与梯度累积自适应:大模型底层优化实战指南

在大语言模型架构创新边际递减的当下,数值精度表示与优化调度正成为性能突破的新核心。FP8浮点格式通过降低存储与带宽开销显著提升计算密度,而动态缩放机制则在极低比特下重建数值稳定性边界;梯度累积自适应调度(GAS-Adapt)进一步将传统固定步长升级为按层信用评估的时序优化范式。二者协同不仅规避了复杂架构改造成本,更在A100等主流硬件上实现MMLU+6.2%与推理延迟-3.2×的技术价值。该路径广泛适用于训练成本敏感的算法团队、追求高吞吐推理的SRE工程师,以及需在现有GPU集群中榨取极致TFLOPS的AI

chongkuachan8070的博客 376

智能手表 BOM 表与版本管理记录

试产与量产阶段 智能手表 BOM 表与版本管理记录

hoony123的博客 1053

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

手算NLP损失值:从CrossEntropy原理到PyTorch实现

损失函数是深度学习模型优化的核心度量,其本质是量化预测分布与真实标签之间的差异。在自然语言处理(NLP)中,交叉熵损失(CrossEntropyLoss)因契合分类任务的概率建模假设而成为标配,它惩罚的是模型对错误答案的‘过度自信’,而非简单数值偏差。理解其数学原理——包括LogSoftmax与负对数似然(NLL)的组合、label索引机制、reduction方式及padding掩码处理——直接关系到loss异常的快速定位与调试。本文聚焦文本分类、序列标注等典型NLP任务,结合PyTorch底层实现,详解如

weixin_30457551的博客 329

数学建模模型总结

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

PyTorch手写文字识别实战:从IAM数据集到CTC端到端部署

手写文字识别(HWR)是光学字符识别(OCR)中的典型窄域任务,其核心挑战在于字符空间不确定性高、连笔粘连普遍、图像质量波动大。不同于印刷体OCR依赖二值化与字符切分,现代HWR普遍采用端到端序列建模,以CTC(Connectionist Temporal Classification)损失函数为核心,实现图像到字符序列的直接映射。该技术依托CNN提取局部笔画特征,RNN建模时序依赖,并通过动态规划自动处理对齐模糊性,显著提升对手写形变、倾斜与涂改的鲁棒性。在工程落地中,PyTorch凭借动态图调试能力、原

图灵教育官方博客 511

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

从零手写LLM:PyTorch实现Transformer核心组件

语言模型(LLM)的本质是基于自回归建模的序列预测系统,其技术核心在于Transformer架构中的多头自注意力与位置编码机制。理解其原理需深入张量运算层面:QKV矩阵的缩放计算、因果掩码的负无穷填充、LayerNorm的数值稳定性设计,以及词嵌入与位置编码的向量空间合成逻辑。这些基础组件共同构成模型的梯度流动路径、内存分配模式与推理时序约束。掌握它们不仅支撑GPT类Decoder-only模型的完整训练闭环,更是实现RoPE、ALiBi等先进位置编码替换、kv缓存优化及领域定制化attention改造的前

weixin_30458043的博客 317

MorphNet结构学习:用梯度驱动的神经网络自适应压缩

神经网络结构优化已从后训练剪枝迈向训练中结构学习——这是一种将通道数等拓扑参数建模为可学习变量的技术范式。其核心原理是引入连续型结构控制变量(如γ),通过FLOPs或参数量正则项耦合进主损失函数,使梯度信号同时优化精度与效率目标。相比静态剪枝,该方法避免上下文缺失、两阶段割裂与目标错位问题,显著提升模型在边缘设备、移动端及低延迟场景下的部署可行性。MorphNet正是这一范式的典型实现,它不改变主干架构,而是赋予模型动态‘代谢’能力,实现精度-速度-资源的协同收敛。

benben 344

两张RTX 4090微调Llama 3.1 70B:FSDP+QLoRA实战指南

大语言模型(LLM)微调是当前AI工程落地的核心环节,而显存受限下的高效训练成为普遍痛点。FSDP(全分片数据并行)通过层级化参数/梯度/优化器状态分片,显著降低多卡显存占用;QLoRA则结合低秩适配与4-bit NF4量化,在冻结主干权重前提下进一步压缩可训练参数。二者协同构成轻量级分布式训练范式,使70B级模型在单机双24GB显卡上实现稳定、可复现、可部署的端到端微调。该方案广泛适用于垂直领域Agent开发、行业知识库构建及RAG系统迭代等真实场景,兼顾精度、效率与工程鲁棒性。

weixin_34275734的博客 311

PyTorch CPU推理9倍加速实战:x86四层优化链路详解

PyTorch CPU推理是边缘部署、SaaS服务与合规场景下的主流选择,其性能瓶颈常源于硬件指令未激活、算子未融合、图优化缺失及运行时调度低效。理解AVX-512向量化原理、OneDNN算子融合机制与TorchScript图优化逻辑,可释放x86平台深层潜力;结合NHWC内存布局调整与NUMA感知线程绑定,能显著降低缓存抖动与跨节点延迟;在金融风控、工业质检、政务NLP等真实产线中,该技术路径已稳定支撑ResNet-50、BERT-base与OCR模型的高吞吐低延迟推理。本文聚焦PyTorch原生优化栈,

347
上一篇: visual studio code(vs code)历史版本下载
下一篇: Pytorch backward报错2次访问计算图需要 retain_graph=True 的一种情况
培之
博客等级 码龄8年 7765粉丝 301原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

培之

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

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

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

打赏作者

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

抵扣说明:

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

余额充值