首页 > 其他分享 >适用批处理的softmax函数的输入矩阵为什么要转置

适用批处理的softmax函数的输入矩阵为什么要转置

时间:2023-10-30 17:26:29浏览次数:30  
标签:转置 max 矩阵 X2 批处理 softmax exp np axis

# 适用批输入的softmax函数
def Softmax(x):
    if x.ndim == 2:
        x = x.T
        x = x - np.max(x, axis=0)
        y = np.exp(x) / np.sum(np.exp(x), axis=0)
        return y.T
    # 为什么要转置 原因是Numpy数组的扩张原理是把行向量复制扩张成矩阵 例子如下
    # X2 = np.array([[1, 2, 3], [3, 2, 1], [1, 2, 4]])
    # np.max(X2, axis=1) 作用是取得各行的的最大值
    # 返回的是一个行向量,在和二维矩阵做加减运算的的扩充操作是将每行都变成这个行向量
    # 所以X2 - np.max(X2, axis=1) 不是计算X2的各行减去各行的最大值
    # np.max(X2, axis=1) 返回的是 [3, 3, 4]
    # 在计算时扩张成:
    # [3, 3, 4]
    # [3, 3, 4]
    # [3, 3, 4]
    # 而要达到计算目的的矩阵是
    # [3, 3, 3]
    # [3, 3, 3]
    # [4, 4, 4]
    x = x - np.max(x) # 溢出对策
    return np.exp(x) / np.sum(np.exp(x))

 

标签:转置,max,矩阵,X2,批处理,softmax,exp,np,axis
From: https://www.cnblogs.com/kmeira/p/17798338.html

相关文章

  • 【Azure Batch】在中国区批处理服务(Mooncake Batch Account)上实验自动池(Auto Pool)
    问题描述在AzureBatch的介绍文档中,提出了自动池的概念,它可以在任务完成后,自动删除Pool资源,详细介绍:https://docs.azure.cn/zh-cn/batch/nodes-and-pools#autopools& https://learn.microsoft.com/zh-cn/rest/api/batchservice/job/add?tabs=HTTP#autopoolspecification自动池是......
  • 机器学习——softmax回归
    分类问题  网络架构   ......
  • cuda vectorized实现矩阵转置
    使用了共享内存和向量化传输,目前为止效果最好的一个实现__global__voidtransposeSmemVec(float*input,float*output,constintX,constintY){__shared__floatsmem[32*4*32];unsignedintix=4*(blockDim.x*blockIdx.x+threadIdx.x);......
  • 向量-转置
    转置是一个数学和线性代数中的概念,通常用于矩阵或向量。它是一种操作,通过这种操作可以改变矩阵或向量的行和列的顺序,即将矩阵的行变成列,列变成行,而不改变矩阵中的元素的值。转置操作通常用一个上标T来表示,放在矩阵或向量的右上角。对于一个矩阵A,其转置记作A^T。转置操作的定义......
  • 软件测试|解决‘pip‘ 不是内部或外部命令,也不是可运行的程序或批处理文件
    前言很多Python初学者在使用Python时,会遇到环境的问题,比如无法使用pip命令安装第三方库的问题,如下图:当出现错误信息"'pip'不是内部或外部命令,也不是可运行的程序或批处理文件"时,这通常意味着在命令行中输入pip命令时,系统无法找到pip可执行文件的位置。本文将介绍解决这个问......
  • 稀疏矩阵快速转置
    如果需要将一个使用三元组形式存储的稀疏矩阵进行转置,当然可以直接交换每一个结点的行和列。但这样做的问题在于,原矩阵是按行数升序排列的,转置之后的矩阵就会变为无序的。快速转置算法的目的就在于得到一个同样有序排列的转置后矩阵。三元组和稀疏数组定义#defineMAXSIZE1250......
  • bat批处理,无限循环,类似while
    bat批处理,没有while这样的循环,那就要自己创建了。一、用:loop:loopecho%num%set/anum+=1if%num%lss10goto:loop二、用forFOR/L%NIN()DO@echoOops三、四、免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。参......
  • Transpose a data frame in R语言 转置
     #firstrememberthenamesn<-df.aree$name#transposeallbutthefirstcolumn(name)df.aree<-as.data.frame(t(df.aree[,-1]))colnames(df.aree)<-ndf.aree$myfactor<-factor(row.names(df.aree))str(df.aree)#CheckthecolumntypesR......
  • Spring Batch 批处理框架,真心强呀!!
    一、SpringBatch介绍SpringBatch是一个轻量级、全面的批处理框架,旨在支持开发对企业系统的日常操作至关重要的健壮的批处理应用程序。SpringBatch建立在人们期望的SpringFramework特性(生产力、基于POJO的开发方法和一般易用性)的基础上,同时使开发人员可以在必要时轻松......
  • npm install -g yarn 安装yarn之后提示:'yarn' 不是内部或外部命令,也不是可运行的程序
    操作系统:win10node版本:v14.21.31:npminstall-gyarn 2:yarn 报错:'yarn'不是内部或外部命令,也不是可运行的程序或批处理文件。3:yarn 安装在C:\ProgramFiles\nodejs\node_modules\corepack\shims4:设置PATHsetPATH=%PATH%;C:\ProgramFiles\nodejs\node_modules\core......