环境
tensorflow 1.4
numpy 3.6

背景介绍
想深刻理解随机梯度下降的过程。

假设我们有两个神经元的输入【5,8】, 经过softmax 函数与交叉熵之后。
做随机梯度下降后, 这个神经的值变成什么样子了?

经过Softmax 与cross_entropy后的神经元求导数是什么呢? 下面是推导过程

完整代码

import tensorflow as tf
import numpy as npx = tf.compat.v1.placeholder(tf.float32, [1,2], name='x')
y_ = tf.compat.v1.placeholder(tf.int32, [1,2], name='y_')#fc1_biases = tf.compat.v1.get_variable('bias',dtype=tf.float32, initializer=[0.0,0.0])
#y = tf.matmul(x, fc1_weights) + fc1_biases
#y = tf.matmul(x, fc1_weights)
#y = tf.nn.relu(y)y= tf.compat.v1.get_variable('weight', dtype=tf.float32, initializer=[[5.0,8]])
loss = tf.nn.softmax_cross_entropy_with_logits(logits=y, labels=y_)train_op = tf.train.GradientDescentOptimizer(2.0).minimize(loss)
input = np.array([[1,2]]).astype('float32')
label = np.array([[0,1]]).astype('int')with tf.compat.v1.Session() as sess:# 初始化所有变量(权值,偏置等)sess.run(tf.compat.v1.global_variables_initializer())print(sess.run(y).tolist())before_softmax,_ = sess.run([y, train_op], feed_dict={x: input, y_: label})print(before_softmax)print(sess.run(y).tolist())print(5.0-2*(np.exp(5.0)/(np.exp(5.0)+np.exp(8.0))))
print(8.0-2*(np.exp(8.0)/(np.exp(5.0)+np.exp(8.0))-1.0))

运行结果

[[5.0, 8.0]]
[[4.905148  8.0948515]]
[[4.905148029327393, 8.09485149383545]]
4.9051482536448665
8.094851746355133

深度学习-tensorflow1.x- 理解 经过softmax_cross_entropy_with_logit后 随机梯度下降的过程相关推荐

  1. 深度学习与计算机视觉(三)最优化与梯度下降

    三.最优化与梯度下降 上一节深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器中提到两个对图像识别至关重要的概念: 用于把原始像素信息映射到不同类别得分的得分函数/score funct ...

  2. 强化学习(七) - 函数近似方法 - 随机梯度下降, 半梯度下降,及瓦片编码(Tile Coding)实例

    函数近似方法 7.1 目标预测(VE‾\overline{VE}VE) 7.2 随机梯度下降和半梯度下降 例7.1: 1000态随机行走的状态收敛 7.3 线性近似 7.4 线性方法的特征构造 7.4 ...

  3. 为了搞清深度学习的随机梯度下降我复习了下微积分

    在学习深度学习时遇到了个新名词:随机梯度下降--可以想象把一个篮球扔到群山之中,让它自由滚动,直到滚动到最低点.找最低点的过程也是机器学习模型训练的过程.对于篮球来说在现实世界中有万有引力会牵引它走向 ...

  4. NeurIPS'18 | 种群进化随机梯度下降深度神经网络优化算法框架

    ,欢迎关注公众号:论文收割机(paper_reader) 因为排版问题,很多图片和公式无法直接显示,欢迎关注我们的公众号点击目录来阅读原文. 原文点击 ↓ 种群进化随机梯度下降深度神经网络优化算法框架 ...

  5. 【深度学习】深入理解Batch Normalization批标准化

    这几天面试经常被问到BN层的原理,虽然回答上来了,但还是感觉答得不是很好,今天仔细研究了一下Batch Normalization的原理,以下为参考网上几篇文章总结得出. Batch Normaliz ...

  6. 【深度学习】深入理解Batch Normalization批归一化

    [深度学习]深入理解Batch Normalization批归一化 转自:https://www.cnblogs.com/guoyaohua/p/8724433.html 这几天面试经常被问到BN层的 ...

  7. 【深度学习】入门理解ResNet和他的小姨子们(一)---ResNet

    2015年由He KaiMing 大神 提出的ResNet现在是一种经典模型.在这之前,虽然VGG的深度已经高达19层了,但是152层的ResNet真的让我们目瞪口呆. ResNet这篇文章则是CVP ...

  8. 深度学习—BN的理解(一)

    0.问题 机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障.那BatchNorm的作用是 ...

  9. (转)【深度学习】深入理解Batch Normalization批标准化

    原文链接:https://www.cnblogs.com/guoyaohua/p/8724433.html 这几天面试经常被问到BN层的原理,虽然回答上来了,但还是感觉答得不是很好,今天仔细研究了一下 ...

最新文章

  1. Linux基础命令---sysctl修改内核参数
  2. MFC六大核心机制之四:永久保存(串行化)
  3. java做报表_一步一步使用POI做java报表
  4. java规定日期格式输出_Java格式化输出日期百分比时间等
  5. 如何快速取消svn的关联
  6. Spring框架----用于创建对象的Component注解
  7. 机器学习第六回-无监督学习—— K-均值算法
  8. http抓包实践--(五)-常用的操作
  9. 一部农村小孩学计算机的电影,10部关于教育的电影,每一部都经典!
  10. 关于CWMP基础(三)----(TR111)DHCP
  11. [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误解决方法总结
  12. signature=1be7575a614ba3597c2c53247a739d1c,18-02-07【摄影机系统】ARRI大画幅摄影机系统常见问题解答...
  13. web 计算器_计算器中的奢侈品——CASIO S200
  14. Windows10虚拟机安装和使用教程
  15. 模仿iOS版微信的滑动View
  16. Java设计模式6,依赖倒置原则
  17. [JavaScript]如何将www.xxx.com变为com.xxx.www
  18. RTF与RTFD格式的文件
  19. 要想提高工作效率,请拒绝做这 7 种事
  20. python内网穿透 开源_内网穿透神器-Serveo

热门文章

  1. oracle非归档模式与归档模式的备份
  2. 物化视图常用维护操作
  3. 词法分析器生成工具flex
  4. linux 文件颜色的含义
  5. Taro多端开发实现原理与项目实战(二)
  6. Spring IoC,Spring Bean示例教程
  7. ZooKeeper--分层仲裁简介
  8. c语言两个线程交替打印奇数和偶数,经典面试题——两个线程交替打印奇数和偶数...
  9. MTU(Maximum Transmission Unit),最大传输单元
  10. php 建议查询DNS解析状态工具