tensorflow2.X实战系列softmax函数

本文介绍了Softmax函数的基本原理及其在深度学习中的应用。通过Stanford大学CS224n课程内容,详细解释了如何使用NumPy实现Softmax函数,并给出了具体的代码示例。此外,还对比了数组与矩阵的概念差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

softmax 原理

斯坦福大学CS224n课程中softmax的解释:

 

 

代码知识点

1、NumPy数组是一个多维数组对象,称为ndarray。数组的下标从0开始,同一个NumPy数组中所有元素的类型必须是相同的。

2、数组
数组(Array)是有序的元素序列。
若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。
数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。
这些有序排列的同类数据元素的集合称为数组。

3、数组与矩阵
矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。
矩阵是二维数据组成的
4、数组与矩阵的区别
矩阵中的元素只能是数字,而数组中的元素可以是字符或者字符串
矩阵是二维的,数组可以是一维的、多维的
矩阵显示时,元素之间无逗号;数组显示时,元素之间用逗号隔开
 

代码实现

import numpy
import math
def softmax(inMatrix):
    m,n = numpy.shape(inMatrix) #m行,n列
    outMatrix = numpy.mat(numpy.zeros((m,n)))  #创建输出矩阵 通过numpy.mat
    soft_sum = 0  #分母
    for idx in range(0,n):
        outMatrix[0,idx] = math.exp(inMatrix[0,idx])
        soft_sum += outMatrix[0,idx]
    for idx in range(0,n): #分子
        outMatrix[0,idx] = outMatrix[0,idx] / soft_sum
    return outMatrix

a = numpy.array([[0.2,0.5,0.1,0.1,0.1]]) #1x5的数组

a_softmax_output = softmax(a)
print(a_softmax_output)

输出结果

[[0.19745789 0.26654027 0.17866728 0.17866728 0.17866728]]

代码参考 Tensorflow 2.0深度学习从零开始学 王晓华著

其他参考

https://blog.csdn.net/lz_peter/article/details/84574716

https://blog.csdn.net/github_36669230/article/details/78038756

https://blog.csdn.net/weixin_44515978/article/details/107889672

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值