笔者由于在做可解释机器学习,后来在pytorch的discussion上终于找到了相应的解决方案,这里给大家看下

方法一:

首先编写模型结构:

class Model(nn.Module):def __init__(self):super(Model,self).__init__()self.l1=nn.Linear(100,50)self.l2=nn.Linear(50,10)self.l3=nn.Linear(10,1)self.sig=nn.Sigmoid()def forward(self,x):x=self.l1(x)x=self.l2(x)x=self.l3(x)x=self.sig(x)return(x

然后编写限制权重范围的类:

class weightConstraint(object):def __init__(self):passdef __call__(self,module):if hasattr(module,'weight'):print("Entered")w=module.weight.dataw=w.clamp(0.5,0.7) #将参数范围限制到0.5-0.7之间module.weight.data=w

最后实例化这个类,对权重进行限制:

# Applying the constraints to only the last layer
constraints=weightConstraint()
model=Model()
#模型训练的时候再写下面这段代码:
model._modules['l3'].apply(constraints)

方法二:

在模型train的时候,对参数的范围进行限制:

loss = criterion(out, var_y)
optimizer.zero_grad()
loss.backward()
optimizer.step()for p in net.parameters():p.data.clamp_(0, 99)

将权重和偏执的范围限制到0-99之间。

仅限制权重的范围,不限制偏执的范围:

for p in net.parameters():p.register_hook(lambda grad: torch.clamp(grad, 0,10))

Pytorch如何约束神经网络中权重/偏执的范围相关推荐

  1. 简单探究神经网络中权重、偏置维度的关系

    利用PyTorch的tensor和autograd实现一个简单的神经网络,探究神经网络中权重.偏置维度的关系 简单神经网络的分析和实现 本次目标 项目环境 神经网络手绘图 代码实现 简单神经网络的分析 ...

  2. 神经网络中的注意力机制总结及PyTorch实战

    技术交流 QQ 群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 0.概述 当神经网络来处理大量的输入信息时,也可以借助人脑的注意力机制,只选择一些关键 ...

  3. 卷积神经网络中的参数共享/权重复制

    参数共享或权重复制是深度学习中经常被忽略的领域.但是了解这个简单的概念有助于更广泛地理解卷积神经网络的内部.卷积神经网络(cnn)能够使那些通过网络馈送的图像在进行仿射变换时具有不变性. 这个特点提供 ...

  4. 【Pytorch神经网络理论篇】 20 神经网络中的注意力机制

    注意力机制可以使神经网络忽略不重要的特征向量,而重点计算有用的特征向量.在抛去无用特征对拟合结果于扰的同时,又提升了运算速度. 1 注意力机制 所谓Attention机制,便是聚焦于局部信息的机制,比 ...

  5. 神经网络中的权重初始化一览:从基础到Kaiming

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 在进行各种小实验和思维训练时,你会逐步发现为什么在训练深度神经网络 ...

  6. 【深度学习】解析神经网络中的数值稳定性、模型初始化和分布偏移(Pytorch)

    [深度学习]解析神经网络中的数值稳定性.模型初始化和分布偏移 文章目录 1 概述1.1 梯度消失和梯度爆炸1.2 打破对称性 2 参数初始化 3 环境和分布偏移3.1 协变量偏移3.2 标签偏移3.3 ...

  7. 深度学习 | Why and How:神经网络中的权重初始化

    北京 | 深度学习与人工智能研修 12月23-24日 再设经典课程 重温深度学习阅读全文> 正文共2268个字,8张图,预计阅读时间:6分钟. 前言 神经网络中的权重(weight)初始化是个常 ...

  8. 神经网络 权重文件 大小_神经网络中如何处理过拟合的问题

    1.过拟合和欠拟合 过拟合是指在验证数据上模型的准确性将达到峰值,然后停滞或开始下降. 过度拟合训练数据.学习如何应对过度拟合非常重要.尽管通常可以在训练集上达到高精度,但是我们真正想要的是开发能够很 ...

  9. 神经网络中的权重初始化问题weight initialization problem in FNN

    个人论文完成笔记 ^ _ ^欢迎批评指正 本篇文章研究的是全连接的多层神经网络中的权重初始化问题,以8-20-30-1的MLP为实验对象.神经网络是一种要素间关联性极强的结构,从输入数据,输入数据的s ...

  10. 神经网络中的Attention机制 pytorch 代码

    注意力机制总述 引言 注意力分布 加权平均 注意力机制的变体 硬性注意力 键值对注意力 多头注意力 代码 引言 在计算能力有限的情况下,注意力机制作为一种资源分配方案,将有限的计算资源用来处理更为重要 ...

最新文章

  1. 【渝粤教育】电大中专财务管理与分析 (2)作业 题库
  2. 注册tomcat为服务
  3. 服务器位置设置在哪里找,服务器主页在哪里设置方法
  4. java安装pydev找不到_为什么安装成功也重启了,但是在window-preferences里找不到PyDev...
  5. 数据结构笔记(二十)--二叉树的存储
  6. python选择应用窗口到最前面
  7. Linux Centos 常用命令整理
  8. JS全国城市数组列表
  9. Foxit PDF SDK For Windows 完美Patch Foxit PDF SDK
  10. 蓝色理想:讲解网络端口及其详解的一个好网址
  11. java实现图灵机器人的接入_调用图灵机器人API实现聊天机器人
  12. 智慧实验室综合安全管理系统(高校版)、危化品管理、设备预约等
  13. 深度学习寿命预测技术路线
  14. 源享科技为什么关闭了_关闭这个阀门竟然需要转8000圈?
  15. echarts 图形变小 宽高为默认值
  16. Linux 系统相关目录介绍
  17. 硅谷——梦想的开始(《硅谷钢铁侠 埃隆 马斯克的冒险人生》读书笔记)
  18. Net5环境下Aspose.cell与Aspose.pdf最新版21.3全系列 excel转pdf,pdf拼页打印,去水印等
  19. 千锋教育实训day02————java
  20. 神舟z7m安装Linux,神舟战神Z7M-KP7GZ怎么装win7旗舰版64位

热门文章

  1. WRF运行wrf.exe出现forrtl: severe (174): SIGSEGV, segmentation fault occurred问题原因与解决合集
  2. 如何写introduction
  3. 【JAVA】金额工具类 金额千分位、中文大写金额、英文金额
  4. golang操作elasticsearch(oliver/elastic使用文档)
  5. 目标检测 | 盘点提升小目标检测的思路
  6. 谷歌浏览器点击网页任何一段文字都会出现光标问题解决
  7. C语言嵌入式系统编程修炼之道
  8. dumple什么意思_dump是什么意思
  9. OSPF协议的四种网络类型
  10. android点击按钮执行adb命令,Android 按键事件及adb命令模拟