loss变小梯度反而没有变小。

背景sigmoid(wx+b)的二分类实验,损失函数为平方损失。

实验一:直接训练发现loss减少导致梯度减少。看代码1:

实验二:在wx+b后加上BN层梯loss减少梯度减少。看代码2:

代码1:

from enum import auto
from scipy.io import loadmat
import numpy as np
import torch
import torch.utils.data as data_utils
from torch import nn
import torch.optim as optim
network=nn.Linear(1,1)
tr=torch.Tensor([[-10],[10]])
optimizer = optim.Adam(network.parameters(), lr=0.04)
w=nn.Sigmoid()
i=0
l1=0
while True:
#i=i+1
network.train()
#network1.eval()#
optimizer.zero_grad()
#l=w(network(tr))
l=w(network(tr))
#print(network1(network(tr)))
l=(l[0]-0)**2+(l[1]-1)**2
l.backward()
optimizer.step()
print(l)
if l10:
l1=l
if l1/l>10:
for name, parms in network.named_parameters():
print(‘–>name:’, name)
print(‘–>para:’, parms)
print(‘–>grad_requirs:’,parms.requires_grad)
print(‘–>grad_value:’,parms.grad)
print("=“)
l1=l
代码2:
from enum import auto
from scipy.io import loadmat
import numpy as np
import torch
import torch.utils.data as data_utils
from torch import nn
import torch.optim as optim
network=nn.Linear(1,1)
network1=nn.BatchNorm1d(1)
tr=torch.Tensor([[-10],[10]])
optimizer=optim.Adam(network.parameters(), lr=0.04)
optimizer1=optim.Adam(network1.parameters(), lr=0.04)
w=nn.Sigmoid()
i=0
l1=0
while True:
#i=i+1
network.train()
network1.train()#
optimizer.zero_grad()
optimizer1.zero_grad()
#l=w(network(tr))
l=w(network(tr))
#print(network1(network(tr)))
l=(l[0]-0)**2+(l[1]-1)**2
l.backward()
optimizer.step()
optimizer1.step()
print(l)
if l10:
l1=l
if l1/l>10:
for name, parms in network.named_parameters():
print(‘–>name:’, name)
print(‘–>para:’, parms)
print(‘–>grad_requirs:’,parms.requires_grad)
print(‘–>grad_value:’,parms.grad)
print("=”)
l1=l

深度学习的loss变小梯度是否变小相关推荐

  1. 深度学习中多层全连接网络的梯度下降法及其变式

    深度学习中多层全连接网络的梯度下降法及其变式 1 梯度下降法 2 梯度下降的变式 1.SGD 2.Momentum 3.Adagrad 4.RMSprop 5.Adam 6.小结 1 梯度下降法 梯度 ...

  2. 【转载】深度学习数学基础(二)~随机梯度下降(Stochastic Gradient Descent, SGD)

    Source: 作者:Evan 链接:https://www.zhihu.com/question/264189719/answer/291167114 来源:知乎 著作权归作者所有.商业转载请联系作 ...

  3. 深度学习(23)随机梯度下降一: 随机梯度下降简介

    深度学习(23)随机梯度下降一: 随机梯度下降简介 1. What's Gradient? 2. What does it mean? 3. How to search? 4. For instanc ...

  4. [源码解析] 深度学习流水线并行GPipe (2) ----- 梯度累积

    [源码解析] 深度学习流水线并行GPipe (2) ----- 梯度累积 文章目录 [源码解析] 深度学习流水线并行GPipe (2) ----- 梯度累积 0x00 摘要 0x01 概述 1.1 前 ...

  5. 深度学习(33)随机梯度下降十一: TensorBoard可视化

    深度学习(33)随机梯度下降十一: TensorBoard可视化 Step1. run listener Step2. build summary Step3.1 fed scalar(监听标量) S ...

  6. 深度学习(32)随机梯度下降十: 手写数字识别问题(层)

    深度学习(32)随机梯度下降十: 手写数字识别问题(层) 1. 数据集 2. 网络层 3. 网络模型 4. 网络训练 本节将利用前面介绍的多层全连接网络的梯度推导结果,直接利用Python循环计算每一 ...

  7. 深度学习(26)随机梯度下降四: 损失函数的梯度

    深度学习(26)随机梯度下降四: 损失函数的梯度 1. Mean Squared Error(MSE) 2. Cross Entropy Loss CrossEntropy 3. Softmax (1 ...

  8. 深度学习(25)随机梯度下降三: 激活函数的梯度

    深度学习(25)随机梯度下降三: 激活函数的梯度 1. Activation Functions 2. Deriative 3. Sigmoid/Logistic (1) Derivative (2) ...

  9. [Python深度学习入门]实战一·Numpy梯度下降求最小值

    [深度学习入门]实战一·Numpy梯度下降求最小值 问题描述: 求解y1 = xx -2 x +3 + 0.01*(-1到1的随机值) 与 y2 = 0 的最小距离点(x,y) 给定x范围(0,3 不 ...

  10. 深度学习(31)随机梯度下降九: Himmelblau函数优化实战

    深度学习(31)随机梯度下降九: Himmelblau函数优化实战 1. Himmelblau函数 2. 函数优化实战 1. Himmelblau函数 Himmelblau函数是用来测试后话算法的常用 ...

最新文章

  1. 个人项目一:自动生成四则运算题目的“软件”
  2. Silverlight RIA Services基础专题
  3. HTTP 2.0 协议
  4. 【qduoj - 1012】反转数字(模拟,水题)
  5. input子系统基础之按键1——什么是input子系统?
  6. Repeater双重绑定(子菜单前台代码:)
  7. VUE 组件之间通信
  8. c语言运算程序示例,C语言算术运算示例程序
  9. linux终端怎么设置monaco,[Linux]Vim设置Monaco字体Vim颜色模板
  10. 绿油损耗大于大多数高速板材,对于高度板材而言,绿油带来的损耗会更明显
  11. 遗传算法求解TSP问题-python实现
  12. 下列不是python内置函数的是_Python 内置函数
  13. CRLF、CR、LF详解
  14. Speedoffice(ppt)中如何插入表格
  15. 可爱的病毒——电脑病毒竟然被程序员当宠物养!
  16. IP地址中的网络地址和主机地址分别是什么意思?
  17. [MySQL]表的创建、修改与删除
  18. PCFG CKY句法分析
  19. win7家庭版和旗舰版区别_Win7 ultimate是什么版本?ultimate是什么意思功能区别介绍!...
  20. 企业各首席官以及工作介绍

热门文章

  1. 物流软件全过程管理办法
  2. JumpServer开源堡垒机与宝兰德中间件完成产品兼容性认证
  3. 【Nvivo】什么是定性研究
  4. Ubuntu (20.4,最新版)安装及简单入门操作
  5. 云速美建站手机端使用百度app打开手机端网站闪退的问题
  6. 守望先锋地图工坊分享合集
  7. qt 5.13.2 在湖南麒麟下的运行报错解决方案
  8. 腾讯云发送短信验证码
  9. C程序设计(谭浩强)的几处错误
  10. flash 和 eeprom 区别和关系、nor flash和nand flash区别