从tf.math.log_softmax和tf.keras.losses.SparseCategoricalCrossentropy看softmax的上溢和下溢问题

WARNING:The name tf.nn.max_pool is deprecated. Please use tf.nn.max_pool2d instead. 一、 如果在做卷积过程中出现WARNING:tensorflow:From D:\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py:4070: The name tf.nn.max_pool is deprecated. Please use tf.nn.max_pool2d instead.**** ,就是如下图所示的... 阅读详情

什么是softmax的上溢和下溢问题

从公式可以看出,对于电脑计算指数函数exp(x)时,

  1. 如果x过于大,比如1000,则会变为inf,无穷大,这就是softmax的上溢问题;

  1. 同样,如果x过于小,比如-1000,则exp(-1000)会直接收敛为0,当softmax的分母的每一项都是0时,就是对应的softmax的下溢问题。

解决这个问题的方法就是利用softmax的冗余性。即,softmax(x-a)=softmax(x)。注明,tf.math.softmax已经默认使用了此方法来解决上溢和下溢问题。详情见:(12条消息) softmax上溢和下溢问题_会飞的猩猩。的博客-优快云博客_softmax 下溢

但是虽然通过冗余性可以解决上溢和下溢问题,但是数值的近似化已经生成,log(exp(-1000))的结果也就不对了。

而对于softmax的结果都是在(0,1)之间,在对softmax激活函数后的结果进行交叉熵损失计算时,则很容易出现大量的0结果,从而使得结果的可靠性受到挑战,为此,出现了tf.math.log_softmax和tf.math.log_sigmoid。在模型上的体现上,例如tf.keras.losses.SparseCategoricalCrossentropy中有一个参数from_logits,其就是在将模型的最后一个激活层移动到损失函数的计算上来,从而减少数值溢出问题导致的模型可靠性不足。关于tf.keras.losses.SparseCategoricalCrossentropy的介绍,见(12条消息) tf.keras.losses.SparseCategoricalCrossentropy 学习总结_会发paper的学渣的博客-优快云博客

特别注意如下数值问题:

tf.math.exp(tf.constant([1000.]))的结果为inf,即无穷大

tf.math.exp(tf.constant([-1000.]))的结果为0

tf.math.log(tf.constant([[1e-40]]))的结果为-inf,即负无穷小

阿里面试官问:什么是softmax 上下溢出问题? 大模型量化是指对大规模机器学习或深度学习模型进行的一种优化技术,旨在减少模型的计算需求和内存占用,同时尽量保持模型的性能。然而,量化也可能导致模型性能的下降,因此研究如何在量化过程中最小化精度损失是一个重要的课题。为此,研究人员开发了多种量化策略和技术,包括但不限于感知量化、量化感知训练等方法,以确保量化后的模型能够尽可能地保持原有的性能水平。量化的关键点是计算zero point和scale以确保量化后的值在目标数据类型的表示范围内,否则需要截断,会损失数据的精度。量化的核心是数值从高精度变为低精度。 阅读详情

相关推荐

PyTorch实战:如何用3行代码解决softmax溢出问题(附完整示例)

本文详细解析了PyTorch中softmax函数的数值溢出问题,并提供了三种高效解决方案,包括最大值平移法、PyTorch官方实现及高级场景下的log_softmax技巧。通过完整代码示例和性能对比,帮助开发者彻底解决softmax数值不稳定问题,提升深度学习模型的鲁棒性。

weixin_30352645的博客 214

tf.math.log详解(附代码实例)

官网链接:https://www.tensorflow.org/api_docs/python/tf/math/log tf.math.log( x, name=None ) x是张量,对x按元素取自然底对数 output=lnxoutput=ln xoutput=lnx 实例: import tensorflow as tf e = 2.71828183 a = tf.con...

lllxxq141592654的博客 8196

深度学习损失函数全解析:从MSE到Focal Loss的原理与应用

损失函数是机器学习模型优化的核心组件,它通过量化预测值与真实值之间的差异,为模型提供可微的指导信号。其数学本质是一个可微的映射函数,使得反向传播算法能够计算梯度并更新网络参数。在深度学习框架如TensorFlow中,损失函数的设计直接影响模型的学习效率和泛化能力。从基础的均方误差(MSE)和交叉熵,到应对类别不平衡的Focal Loss,不同的损失函数适用于不同的数据分布和任务目标。在工程实践中,理解损失函数的原理有助于在分类、回归等场景中做出合适选择,例如使用交叉熵处理多分类问题,或采用Huber损失增强

weixin_34008933的博客 370

softmax溢出问题

目录上溢及下溢softmax交叉熵损失 softmax函数是深度学习常用的输出函数,它的表达式如下: yj^=exj∑i=1nexi\hat{y_j} = \frac{e^{x_j}}{\sum_{i=1}^{n} e^{x_i}}yj​^​=∑i=1n​exi​exj​​ 上溢及下溢 但是如果 xjx_jxj​ 是一个很大的数,那么 exje^{x_j}exj​ 可能会大于数据类型容许的最大数字,造成上溢,这将使分母或分子变为 infinfinf, 最后得到的是0、infinfinf 或 nannanna

muyuu的博客 3913

Keras实战防崩指南:从环境配置到模型部署的12个生死关卡

Keras作为TensorFlow的高级API,以简洁语法降低深度学习入门门槛,但其封装性也隐藏了大量运行时陷阱。理解张量计算图构建、GPU显存分配机制、数据流水线异步调度原理,是规避OOM、NaN loss、accuracy卡死等典型故障的技术基础。本文聚焦Keras在真实项目中的工程落地痛点,结合CUDA版本兼容性、tf.data高效管道、SavedModel生产部署等关键技术环节,系统解析环境配置、数据预处理、模型编译、训练监控、量化推理等核心流程。特别针对conda环境管理、batch_size与显

weixin_33894640的博客 457

TensorFlow端到端机器翻译实战:轻量Attention与领域适配

机器翻译本质是跨语言的意义重构,而非字符级条件概率映射。其核心原理依赖Encoder-Decoder架构与注意力机制,通过建模源目标语间的对齐关系实现语义转换。技术价值在于平衡翻译质量、推理延迟与部署成本,尤其在客服工单、医疗报告、工业手册等垂直场景中,需突破BLEU指标局限,直面OOV词、长尾术语、显存爆炸与服务化瓶颈。本文基于TensorFlow 2.x,聚焦Local Attention优化、领域感知子词切分、三级Fallback数据管道及SavedModel生产部署,深度融合工程鲁棒性与模型可解释性

8250

TensorFlow从零实现机器翻译:Encoder-Decoder与Attention原理实战

机器翻译是自然语言处理中的经典序列到序列任务,其核心在于建模源语言与目标语言之间的概率映射关系。基于RNN或Transformer的编码器-解码器架构,通过注意力机制动态构建跨语言对齐,解决了长程依赖与语义等价表达难题。TensorFlow凭借确定性调试能力、SavedModel工业部署支持及混合精度优化,在边缘设备与私有云场景中展现出显著工程优势。本文深入剖析梯度爆炸抑制、teacher forcing衰减策略、BPE子词正则化及BLEU评估陷阱等关键实践环节,覆盖数据清洗、模型搭建、训练调优到TFLit

chenzhuofei4155的博客 379

深度学习中的对数似然损失函数原理与应用

损失函数是机器学习模型训练的核心组件,其中基于最大似然估计原理的对数似然损失在分类任务中表现优异。该函数通过衡量预测概率分布与真实分布的差异,配合Softmax等激活函数,能有效处理多类别分类问题。其数学本质是优化模型参数使观测数据的出现概率最大化,在PyTorch和TensorFlow中均有优化实现。典型应用包括图像分类、自然语言处理等领域,针对类别不平衡等场景还可结合Focal Loss等改进版本。理解对数似然损失的工作原理,有助于开发者解决训练过程中的梯度异常、数值不稳定等常见问题,提升模型在CV、N

diaogan4202的博客 407

有效防止softmax计算时上溢出(overflow)和下溢出(underflow)的方法

实数在计算机内用二进制表示,所以不是一个精确值,当数值过小的时候,被四舍五入为0,这就是下溢出。此时如果对这个数再做某些运算(例如除以它)就会出问题。反之,当数值过大的时候,情况就变成了上溢出。.........

爱CV 3084

TensorFlow机器翻译实战:从Seq2Seq到Transformer完整落地指南

机器翻译是自然语言处理的核心任务之一,其本质是建模源语言与目标语言之间的序列到序列映射关系。基于Encoder-Decoder架构的神经网络通过注意力机制实现上下文感知的动态对齐,显著提升长句翻译鲁棒性。技术价值体现在端到端可训练、支持多语言迁移、易于集成部署等工程优势。典型应用场景包括跨境电商商品描述本地化、实时会议字幕生成、文档批量翻译系统等。本文聚焦Python与TensorFlow生态下的可复现落地实践,覆盖数据清洗、Subword分词、可学习位置编码、Masked损失函数及Beam Search解

xpmwgcwm的博客 392

TensorFlow词级文本生成器:从零实现可控、可解释的轻量NLP模型

词级文本生成是一种基于词汇单元建模的自然语言生成范式,其核心在于学习词与词之间的条件概率分布,而非字符或子词粒度。相比大语言模型的黑箱推理,它依托LSTM等序列模型实现可解释的上下文建模,具备参数可控、部署轻量、领域适配性强等工程优势。技术价值体现在低资源场景下的高确定性输出——支持温度调节、Top-k采样、词频加权损失等精细化控制机制,显著提升生成连贯性与专业性。典型应用场景包括古籍补全、合同风险提示、方言转写及嵌入式端侧部署。本文聚焦TensorFlow原生实现的词级生成全流程,涵盖jieba领域分词、

weixin_33912453的博客 385

如何防止softmax函数overflow和underflow?

在很多数值计算的库中,都采用了此类方法保持数值稳定.

mathlxj的博客 1126

ZYNQ平台AXI DMA传输避坑指南:如何快速定位‘errors:200‘等中断故障

本文详细解析了ZYNQ平台AXI DMA传输中常见的'errors:200'等中断故障,提供了从寄存器解析到压力测试的完整解决方案。通过深入分析XILINX_DMA中断机制、错误分类及五步排查法,帮助开发者快速定位并解决DMA传输问题,提升系统稳定性与性能。

weixin_29159613的博客 439

softmax防止溢出

softmax如何防止指数上溢?什么是指数上溢,什么是下溢?该如何解决?

qq_45503218的博客 551

【3DSlicer】基于心脏ct影像重建3d模型及导出

软件:3DSlicer4.11 基于心脏ct影像重建3d模型

Liuees的博客 1万+

用LangFuse+LangChain打造可观测的AI应用:从埋点到成本监控实战

本文详细介绍了如何将开源可观测性平台LangFuse深度集成到基于LangChain构建的AI应用中,特别是电商客服机器人场景。通过从基础SDK集成、提示词管理到成本监控的完整实战,帮助开发者实现对LLM应用内部工作流的清晰追踪、问题排查与费用分析,从而打造稳定、可控的生产级AI应用。

dapp9builder的博客 711

softmax的数值溢出问题

softmax是deep learning常用的一个操作,虽然有很多现成的包可以调,但在某些场景下需要自己实现。本文简单探讨一下浮现softmax可能会出现的数值稳定性问题。联用时(如计算cross-entropy损失),会出现。,此时应当进行如下变形。很大时,分子可能出现。

weixin_40779727的博客 1087

YOLOv8优化:独家创新(SC_C_Detect)检测头结构创新,实现涨点 | 检测头新颖创新系列

独家创新(SC_C_Detect)检测头结构创新,适合科研创新度十足,强烈推荐

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 4869

TensorFlow2-数学运算(9)

文章目录数学运算运算符Operation type 操作类型+-*/%tf.math.log tf.elog2, log10?pow, sqrt@ matm同数据形状不同数据形状With broadcastingRecap 扼要重述Y = X @ W + bout = relu(X @ W + b) 数学运算 运算符 ±*/ **, pow, square sqrt //, % exp, log @, matmul linear layer Operation type 操作类型 element-

清风冷吟 457

2025年华为杯中国研究生数学建模竞赛E题 高速列车轴承智能故障诊断问题 思路+代码

all_data, file_info = preprocessor.load_mat_files(file_list[:50]) # 加载前50个文件作为示例。[y_source, y_source, domain_labels], # 注意:这里使用伪标签。X_target = np.random.randn(100, X_source.shape[1], 1) # 示例数据。"""构建CNN-Transformer混合模型""""""构建Transformer模型"""

YOLO 1046

微信小程序 - 解决video视频播放黑屏只有声音没有画面问题,使用Video标签无法播放视频失败只有声音、黑屏视频播放不了,安卓手机/苹果ios视频只有声音却没有画面(uniapp微信小程序也适用)

微信小程序video有声音但是画面黑屏,uni-app微信小程序视频播放黑屏但是有音频,微信小程序video android真机或苹果ios系统中黑屏 只有声音没有画面,Uniapp微信小程序 Video MP4视频播放失败,只有声音,黑屏,视频播放不了,解决办法,解决小程序视频编码兼容性问题导致黑屏,出现黑屏但有声音的问题,video标签播放视频有声音,但是黑屏的原因及解决办法,mp4视频编码的问题,video标签播放视频有声音,但是黑屏。uniapp使用video标签无法播放视频出现黑屏问题处理,如何解

🏆 前端领域优质创作者 7777

什么是softmax 上下溢出问题?softmax的意义以及和logistic函数区别

softmax 上下溢出问题?在计算机科学中,溢出(overflow)和下溢出(underflow)是指数据超出其存储类型所能表示的范围的情况。上溢出(Overflow)上溢出发生在数值超过了变量或数据类型的上限。例如,在一个8位无符号整数(范围是0到255)中,如果你尝试存储值256,就会发生上溢出。因为256超出了这个数据类型可以表示的最大值,结果可能会被截断为0(取决于具体的处理方式),这通常会导致错误的结果。2. 下溢出(Underflow)

曾小健3的博客 1986

(LDA新闻文本主题分析)基于 gensim训练LDA模型,进行新闻文本主题分析 完整代码+数据 可直接运行

(LDA新闻文本主题分析)基于 gensim训练LDA模型,进行新闻文本主题分析 完整代码+数据 可直接运行

机器学习深度学习业余选手 1498

Softmax 的上下溢出问题解决方案

在审核RD写的线性分类解读时,看到了这么一条: 在 Softmax 函数的计算过程中,还需要注意上溢出和下溢出的问题 之前遇到过,但都是调包来解决的,今儿看到了之后,整理如下: 给定一个张量: x=[x1,x2,....,xn]T \bm{x} = [x_1, x_2, ...., x_n] ^ T x=[x1​,x2​,....,xn​]T 经过softmaxsoftmaxsoftmax函数为: x~=[x~1,x~2,....,x~n]T \bm{\tilde{x}} = [\tilde{x}_1, \

先说一下,就简单地写点儿氵文,不是博客,只是我的笔记本/工具书 4564

YOLOv11【第六章:模型压缩与极致优化篇·第15节】YOLOv11 专用剪枝工具库使用指南!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 1312

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

softmax

图3式中如果x为很大的正数,e的x次幂过大,导致float32溢出,称为上溢出。如果x为很小的负数,e的x次幂为接近0,超过有效数字后就是0,而如果分母都是0,就出现了除0错,称为下溢出。解决方案是分子上下,同时除以e的max(x)次幂,如图4所示。(1)Softmax函数是二分类函数Sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。(3)当发生上溢出时,分子为0,故而避免了上溢出而发生下溢出时,分母中至少有一个为1,避免了除0错,故而避免了下溢出。

qq_56583393的博客 436

android 蓝牙通讯demo

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

上一篇: tf.keras.losses.SparseCategoricalCrossentropy 学习总结
下一篇: 基于transformer和相关预训练模型的任务调优
会发paper的学渣
博客等级 码龄15年 171粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

会发paper的学渣

您的鼓励和将是我前进的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值