我试图用MNIST理解一个简单的3层神经网络中的反向传播.

输入层有权重和偏差.标签是MNIST,因此它是10类向量.

第二层是线性转变.第三层是softmax激活,以获得输出作为概率.

反向传播计算每一步的导数并将其称为梯度.

以前的图层将全局或上一个渐变附加到局部渐变.我无法计算softmax的局部梯度

在线的几个资源通过对softmax及其衍生物的解释,甚至给出了softmax本身的代码样本

def softmax(x):

"""Compute the softmax of vector x."""

exps = np.exp(x)

return exps / np.sum(exps)

关于何时i = j和何时i!= j来解释导数.这是一个我想出的简单代码片段,希望能够验证我的理解:

def softmax(self, x):

"""Compute the softmax of vector x."""

exps = np.exp(x)

return exps / np.sum(exps)

def forward(self):

# self.input is a vector of length 10

# and is the output of

# (w * x) + b

self.value = self.softmax(self.input)

def backward(self):

for i in range(len(self.value)):

for j in range(len(self.input)):

if i == j:

self.gradient[i] = self.value[i] * (1-self.input[i))

else:

self.gradient[i] = -self.value[i]*self.input[j]

然后self.gradient是局部渐变,它是一个向量.它是否正确?有没有更好的方法来写这个?

python计算ex函数_python – numpy:计算softmax函数的导数相关推荐

  1. python中的f函数_Python/numpy/pandas中函数f(x,y)结果的矩阵

    我有两个系列X和Y,在Python中有一个函数f(X,Y).我想生成一个矩阵,其中包含X和Y的每个组合的函数的输出.例如,如果函数只是一个简单的乘法,它将如下所示:1 2 3 4 5 -------- ...

  2. python数组去重函数_Python科学计算库Numpy之 数组操作

    操作ndarray 的方法 numpy.reshape:这个函数在不改变数据的条件下修改形状 numpy.ndarray.flat:该函数返回数组上的一维迭代器,行为类似 Python 内建的迭代器 ...

  3. python np dot函数_python科学计算之Numpy

    Numpy的组成与功能 Numpy(Numeric Python)可以被理解为一个用python实现的科学计算包,包括: 1.强大的N维数组对象Array: 2.成熟的函数库: 3.实用的线性代数.傅 ...

  4. python公式计算_Python Numpy计算各类距离的方法

    详细: 1.闵可夫斯基距离(Minkowski Distance) 2.欧氏距离(Euclidean Distance) 3.曼哈顿距离(Manhattan Distance) 4.切比雪夫距离(Ch ...

  5. python方差函数_python numpy实现 标准差,方差

    使用numpy可以做很多事情,在这篇文章中简单介绍一下如何使用numpy进行方差/标准方差/样本标准方差/协方差的计算. variance: 方差 方差(Variance)是概率论中最基础的概念之一, ...

  6. python中ndarray除_python科学计算_numpy_ndarray

    ndarray:n-dimensional array object,即多维数组对象,是python自带的array对象的扩展,array对象和list对象的区别是array对象的每一个元素都是数值, ...

  7. python矩阵sin计算器_Python科学计算工具

    Python科学计算工具-Numpy入门 2017.07.02 20:29:14字数 1,404阅读 2,509 一:前言 学了中国大学mooc的Python数据分析与展示课程感觉挺不错的,记录下来以 ...

  8. python row函数_Python numpy 常用函数总结

    Numpy是什么 在没给大家介绍numpy之前先给大家说下python的基本概念. Python 是一种高级的,动态的,多泛型的编程语言.Python代码很多时候看起来就像是伪代码一样,因此你可以使用 ...

  9. python排大小函数_python numpy 一些函数 大小排序和统计

    排序大小函数 import numpy as np size = 100 a = np.random.randint(0, 1000, size=size) print(a) # 排序之后的前k个元素 ...

  10. 用python实现分段函数_python:集成分段函数

    我想把一个定义好的函数分段积分,这个函数乘以勒让德多项式. 不幸的是,我找不到如何在documentation中使用x的第n个勒让德多项式.当n = 1,..., 50时,我要对x的每个Legendr ...

最新文章

  1. Log4j格式化符号
  2. zookeeper集群配置与配置文件详解
  3. 喜报!良品铺子签约神策数据
  4. wordpress启动初始化过程
  5. 只安装python_pip 只能安装python库吗
  6. 关于Ajax 4-9
  7. (STL,vector)木块问题
  8. JENKINS+maven+ssh+shell 完成自动化部署工具的开发
  9. centos5安装oracle11,CentOS 6.5 x64 安装 Oracle11g R2
  10. CCIE学习(4)——VLAN基础
  11. RSAC|苹果设备的最大威胁是逆向后重部署的恶意软件
  12. [Oracle]如何在Oracle中设置Event
  13. ajax实例详解(2)
  14. LOL聊天服务器一直是断开状态怎么办,lol聊天服务器为什么老连不上 lol聊天服务器连不上解决技巧...
  15. win10下设置显示文件后缀名以及显示隐藏文件
  16. 迎接天翻地覆的重大演变:微软加速器区块链论坛成功举办
  17. 推荐电影 迪士尼经典动画片大全 1937-2008
  18. 旅行青蛙服务器维护时间,旅行青蛙小青蛙多久出门一次?要什么时候才会出门...
  19. C# 实现实时网速
  20. VS2019 KEY

热门文章

  1. 使用Scrapy框架,爬取b站番剧信息。
  2. (转)大型网站的负载均衡器、db proxy和db
  3. java定义包的关键字_如何定义包,关键字是什么?
  4. 在Unity中获得一个物体的所有子物体包括孙物体。
  5. Git同步和撤销命令
  6. 使用J-Link启动海思3516最小系统
  7. 截屏的各种实现(全屏or长截屏)
  8. Shell 脚本进入编辑模式和保存退出
  9. Java中常见程序:万年历,进制转换等
  10. 推荐4个实用的4~20mA输入/0~5V输出的I/V转换电路