softmax(a,axis=0)的用法理解 总结

PyTorch中dim参数实战指南:从dim=0到dim=-1的softmax应用详解 本文深入解析了PyTorch中softmax函数的dim参数,从张量维度基础讲起,通过三维张量实例详细拆解了dim=0、1、2及dim=-1的计算逻辑与区别。文章结合图像分类、NLP序列模型及注意力机制等实战场景,阐述了如何正确选择dim参数以得到有效的概率分布,并提供了数值稳定性处理及高维张量调试等高级技巧。 阅读详情

对于3维度数组 总结axis=0 , 1 ,2 

axis=0 沿着 axis=0方向 (可以认为是时间的方向)取每个单元对应元素进行计算softmax()  //通俗理解就是今天8点钟的对应行对应列的元素a[2][0][0] 与昨天8点钟的对应行对应列的元素a[1][0][0] 及 前天8点钟的对应行对应列的元素a[0][0][0] 都取出来,进行计算softmax()

axis=1 沿着 axis=1方向  (行的方向)取每个单元对应元素进行计算softmax()

axis=2 沿着 axis=2方向  (列的方向)取每个单元对应元素进行计算softmax()

 

import tensorflow as tf
import numpy as np
print("tf.__version__=",tf.__version__)
a = np.array([[[1, 2, 3], [1, 2, 3]],[[4, 5, 6], [4, 5, 6]]])
a = tf.cast(a, tf.float32)
#>>> a
#<tf.Tensor: shape=(2, 2, 3), dtype=float32, numpy=
#array([[[1., 2., 3.],
#        [1., 2., 3.]],
#
#       [[4., 5., 6.],
#        [4., 5., 6.]]], dtype=float32)>
#
s1 = tf.nn.softmax(a,axis=0)
print(s1)

#tf.Tensor(
#[[[0.04742587 0.04742587 0.04742587]
#  [0.04742587 0.04742587 0.04742587]]
#
# [[0.95257413 0.95257413 0.95257413]
#  [0.95257413 0.95257413 0.95257413]]], shape=(2, 2, 3), dtype=float32)

s2 = tf.nn.softmax(a,axis=1)
print(s2)
#tf.Tensor(
#[[[0.5 0.5 0.5]
#  [0.5 0.5 0.5]]
#
# [[0.5 0.5 0.5]
#  [0.5 0.5 0.5]]], shape=(2, 2, 3), dtype=float32)

s3 = tf.nn.softmax(a,axis=2)
print(s3)
#tf.Tensor(
#[[[0.09003057 0.24472848 0.66524094]
#  [0.09003057 0.24472848 0.66524094]]
#
# [[0.09003057 0.24472848 0.66524094]
#  [0.09003057 0.24472848 0.66524094]]], shape=(2, 2, 3), dtype=float32)

a1 = np.array([[[1, 2, 3], [2, 4, 6]],[[2, 4, 6], [4, 5, 6]]])
a1 = tf.cast(a1, tf.float32)
#>>> a
#<tf.Tensor: shape=(2, 2, 3), dtype=float32, numpy=
#array([[[1., 2., 3.],
#        [1., 2., 3.]],
#
#       [[4., 5., 6.],
#        [4., 5., 6.]]], dtype=float32)>
#
s11 = tf.nn.softmax(a1,axis=0)
print(s11)

 

输出

tf.__version__= 2.0.0
tf.Tensor(
[[[0.04742587 0.04742587 0.04742587]
  [0.04742587 0.04742587 0.04742587]]

 [[0.95257413 0.95257413 0.95257413]
  [0.95257413 0.95257413 0.95257413]]], shape=(2, 2, 3), dtype=float32)
tf.Tensor(
[[[0.5 0.5 0.5]
  [0.5 0.5 0.5]]

 [[0.5 0.5 0.5]
  [0.5 0.5 0.5]]], shape=(2, 2, 3), dtype=float32)
tf.Tensor(
[[[0.09003057 0.24472848 0.66524094]
  [0.09003057 0.24472848 0.66524094]]

 [[0.09003057 0.24472848 0.66524094]
  [0.09003057 0.24472848 0.66524094]]], shape=(2, 2, 3), dtype=float32)
tf.Tensor(
[[[0.26894143 0.11920291 0.04742587]
  [0.11920291 0.26894143 0.5       ]]

 [[0.7310586  0.880797   0.95257413]
  [0.880797   0.7310586  0.5       ]]], shape=(2, 2, 3), dtype=float32)

 

https://blog.youkuaiyun.com/q2519008/article/details/107086024?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control

Softmax数值稳定性原理与工业级实现指南 Softmax是深度学习中实现概率归一化的基础激活函数,其核心原理在于对logits进行指数变换后沿类别维度归一化。但由于exp函数的极端动态范围,原始公式在浮点计算中极易引发上溢(inf)和下溢(0.0),导致梯度失效与预测崩溃。因此,工业实践必须引入数值稳定技术——关键在于利用Softmax的平移不变性,通过max-trick(减去每行最大值)约束输入范围,并进一步延伸至log-space计算以支持log-Softmax与交叉熵损失的融合。该技术广泛应用于图像分类、语音识别、大语言模型生成等场景,是Py 阅读详情

相关推荐

tf.nn.softmax的axis的理解

import tensorflow as tf tf.enable_eager_execution() ones = tf.ones(shape=[2,3]) temp1 = tf.nn.softmax(ones,axis=1) # 行 print(temp1) temp2 = tf.nn.softmax(ones,axis=2) # 列 print(temp2) tf.Tensor( [[0....

开卷有益 7384

numpy.max中参数axis的取值问题

np.max(a, axis=None, out=None, keepdims=False) 求序列的最值 最少接收一个参数 axis:默认为列方向,即axis=0 一般为二维数组,用来表示行和列的信息: >>> import numpy as np >>> z = np.array([[1, 2, 3], [4, 5, 6]]) >>...

SpadgerZ的博客 1万+

实测OV5640 DVP/MIPI接口720p@60fps配置,为什么我的Zynq-7020开发板只有30帧?

本文深入解析了OV5640摄像头在Zynq-7020开发板上帧率减半的问题,从寄存器配置到硬件链路进行全面排查。重点分析了DVP/MIPI接口的720p@60fps配置,提供了关键寄存器设置、时序参数调整及硬件带宽验证方法,帮助开发者快速定位并解决帧率下降问题。

weixin_42634811的博客 344

Numpy中axis的理解

Numpy中经常有设计到axis的多维数组操作,对axis不是很理解,每次都记不住axis=0代表什么; 下面以2*3*4的多维数组进行说明。 先看代码段 import numpy as np np.random.seed(123) x = np.random.randint(0,5,[2,3,4]) print(x) [[[2 4 2 1] [3 2 3 1] [1 0 1 1]...

I_chat的博客 768

OpenCV2.4.9+vs2012配置

下载OpenCV2.4.9。 下载地址:http://opencv.org/downloads.html2.下载后,解压。 请记住解压路径,后面根据自己的解压路径进行配置。我的路径是E:\ 3.配置环境变量 win7系统:(计算机-属性-高级系统设置-高级-环境变量) 1)编辑系统变量Path:添加E:\opencv\build\x86\vc11\bin; 2)添加/编辑用户变量P

sybil_w的博客 969

多目标优化NSGA-II(快速精英非支配排序遗传算法)及python实现

文章目录前言一、什么是NSGA-II?二、学习NSGA-II1.快速非支配排序算法2.密度估计3.拥挤比较算子4.主循环5.代码6.总结 前言 NSGA-II适用于复杂的多目标优化问题,是K-Deb教授在2000年在一篇paper《MOEAs — A fast and elitist multi-objective genetic algorithm: nsga2》提出。 Keywords: optimization; multi-objective evolutionary algorithm; no

ricky_blog 9744

Python中axis的意思

Python中axis的意思: 就记住axis=i,操作就是沿第i维变化的方向进行; 对于一个(5,4,3,2)的数组data:dim 0 : 5 ; dim 1 : 4; dim 2 : 3; dim 3 : 2 axis=0,操作时只有第0维的下标变化其他不变,操作结束后变为(4,3,2) axis=1,操作时只有第1维的下标变化其他不变,操作结束后变为(5,3,2) axis=2,操作时只有第2维的下标变化其他不变,操作结束后变为(5,4,2) axis=3,操作时只有第3维的下标变化其他

sinat_40469883的博客 979

YOLOv11在视频流中的时序建模改进-(加入ConvLSTM或Transformer捕捉帧间关联)

本文提出了一种结合ConvLSTM和Transformer的改进YOLOv11算法,用于增强视频目标检测的时序建模能力。针对视频检测中运动模糊、遮挡等挑战,研究分析了ConvLSTM的局部时空特征建模和Transformer的全局注意力机制之间的互补性。通过数学公式详细阐述了ConvLSTM的门控机制和Transformer的自注意力计算原理,并提出分层融合策略:底层使用ConvLSTM处理高分辨率特征捕捉局部运动,高层应用Transformer建立全局时空关联。改进方案在YOLOv11架构中插入时序增强模

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 680

softmax中axis参数

从caffe中我们看到softmax有下面这些参数 // Message that stores parameters used by SoftmaxLayer, SoftmaxWithLossLayer message SoftmaxParameter { enum Engine { DEFAULT = 0; CAFFE = 1; CUDNN = 2; } optional Engine engine = 1 [default = DEFAULT]; // The

夏天Alex 2857

一篇文章带你认识 SpringBoot

文章目录一、原有 Spring 优缺点分析二、SpringBoot 的概述 一、原有 Spring 优缺点分析 (1)Spring 的优点分析 Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的 Java 对象(Plain Old Java Object,POJO)实现了EJB的功能。

南淮北安的博客 766

从工具选型到落地实践:吃透 SAP Fiori Launchpad 配置工具体系

摘要: SAP Fiori Launchpad配置远非简单添加应用和分配角色,涉及技术目录、业务目录、Spaces/Pages等多层管理。官方推荐新工具分工:技术目录用FLPAM维护应用定义,业务目录用FLPCM编排应用组合,Spaces/Pages优化用户体验布局,而传统Groups模式已被标记弃用。这种分层治理模式(定义层-编排层-展示层)能有效解决传输混乱、升级兼容性问题,尤其适合大规模项目实施。关键在于区分技术配置与业务呈现,避免将所有功能堆砌在单一旧工具中。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 103

tf.nn.softmax(x, axis)里axis起什么作用?

在处理多分类问题时,tf.nn.softmax(x, axis) 函数是一定要使用的,那么这里的 axis 到底有什么用呢? 二维数组 首先,我们来看在二维数组中的情况: A = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]) A = tf.cast(A, tf.float32) A <tf.Tensor: id=135, sh...

cocofisher的博客 5865

FFmpeg 开发(01):FFmpeg 编译和集成

尽管 FFmpeg 功能强大,但是由于其采用的是带有传染性的 LGPL/GPL 开源协议,所以一些大厂基本上都是自己独立开发类似的音视频处理库,甚至在接口和组织模块上模仿 FFmpeg 。

字节流动 1万+

【numpy】axis 维度 是什么 Softmax中dim方向是什么

1 对于numpy.ndarray,可以使用shape查看形状。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d8ed22a1bfe940ed83ac05b505990161.png) import numpy as np kl = [2, 2, 3, 3, 7, 7] npa = np.asarray(kl).reshape((3, 2, 1)) print(npa) print("--------") print(np.sum(npa, axis=0)) prin

q742971636的博客 1660

伺服系统控制原理深度解析

摘要:本文系统阐述了伺服系统的控制原理与应用。首先介绍了伺服系统的定义、组成及其在工业自动化中的重要性;然后详细分析了反馈控制机制、稳定性判据和性能指标;重点推导了传递函数和状态空间两种数学模型,并通过LaTeX公式展示了二阶系统建模过程;进而对比了PID控制、状态反馈及自适应控制等方法的优缺点;最后结合数控机床等案例,验证了理论方法的有效性,并展望了伺服系统智能化发展趋势。全文兼顾理论深度与实践指导性,为控制工程领域提供了系统的技术参考。

技术工作者 1264

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

深度学习 axis的问题 shape = (axis=0, axis=1)

axis=0上下压扁,行消失axis=1左右压扁,列消失通用规则对哪个 axis 操作,就沿着这个轴 “捏扁”,最后这个轴就没了这个理解方式在深度学习里100% 通用:softmax、归一化、求和、均值、拼接全是这个逻辑。

qq_63683271的博客 237

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

paddle中softmax如何对矩阵进行运算

softmax对矩阵操作

qq-1343330453 2517

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Softmax扩展

在机器学习尤其是深度学习领域中,经常需要把一些输入映射到0-1之间的概率值。这个时候最先想到的就是sigmoid和softmax了,softmax是二分类函数sigmoid在多分类上的推广,目的就是将多分类结果以概率的形式展现出来。在数学,尤其是概率论和相关领域中,softmax函数又称归一化指数函数,是逻辑函数的一种推广。Softmax函数实际上是有限项离散概率分布的梯度对数归一化。

u013250861的博客 586

通俗易懂地理解Gumbel Softmax

我在学习《》的过程中,听到朱老师讲到了GroupViT中用到了gumbel softmax(),于是我带着好奇心试图想去了解gumbel softmax是什么,最后我把我的理解写成这篇文章,但是目前我在工作中还没用到gumbel softmax,所以如果有说得不对的地方,欢迎指正。

家鸽的代码屋 2453

softmax,argmax,soft-argmax 理解

参考https://www.cnblogs.com/king-lps/p/9937440.html 1)softmax: softmax是一种指数归一化函数。 import numpy as np data=np.array([0.1, 0.3, 0.6, 2.1 ,0.55]) np.exp(data)/np.sum(np.exp(data)) # softmax ou...

道长的博客 2万+

【Caffe】softmax和softmaxwithloss层的理解

softmax_axis_表示在那边切,当为1是,out_num_就表示batchsize,sum_multiplier表示通道数,scale相关的一般表示临时变量的存储,dim=C*W*H,spatial_dim=W*H,inner_num_如果fc层就为1,conv层就为H*W。 本文所举得例子是在mnist的基础上解说的,batchsize为128,类别为10。 首先看softmax求导...

mjiansun的专栏 5159

softmax函数的理解

0 写在前 分类是机器学习的很重要的一种方式.所以有效的分类方法也是十分重要的.softmax提供了一种十分有效的概率分类预测的方法 1 softmax函数 softmax(xi)=exi∑m=jzexj softmax(x_{i})= \frac{e^{x_{i}}}{\sum_{m=j}^z e^{x_{j}} } softmax(xi​)=∑m=jz​exj​exi​​ 这里存在两种情况,如...

qq_33386711的博客 340

[tensorflow] softmax函数解析

def softmax(logits, axis=None, name=None, dim=None): """Computes softmax activations. This function performs the equivalent of softmax = tf.exp(logits) / tf.reduce_sum(tf.exp(logits), axi...

currycode 3937

A-Softmax的keras实现-《SphereFace: Deep Hypersphere Embedding for Face Recognition》

A-Softmax的keras实现 参考文档:https://www.cnblogs.com/heguanyou/p/7503025.html 注:主体完成,调试中,先行记录,待续。。。已完成 注:我写的不是很好,因为模型搭建用到了batch_size这个参数,所以编译很慢;而且资料都说该方法很难收敛,比较难训练;推荐后续的改进版: 《AM : Additive Margin Sof...

明年暑假升初中的博客 3778

理解Softmax函数的原理和实现

Softmax函数是机器学习和深度学习中非常基础且重要的一个概念,特别是在处理分类问题时。它的作用是将一个向量中的元素值转换成概率分布,使得每个元素的值都在0到1之间,并且所有元素值的总和为1。

Ven%的博客 1546

Tensor中dim与Numpy中axis的比较

通过调研,发现python中import Numpy后在Numpy array计算中axis指令与pytorch框架下import torch / torch.nn后Tensor计算中dim指令难以区分,本文对此进行了对比分析,并给出了结论。

Vectorln的博客 649
上一篇: python中True 为1 ,False为0
下一篇: mxnet中的SoftmaxCrossEntropyLoss损失函数
火星种萝卜
博客等级 码龄19年 438粉丝 304原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值