CNN应用Relu激活函数时,根据√(2/n)设计权重初始值

学习《深度学习入门(基于Python的理论与实现)》时,设计DeepConvNet,需要应用Relu激活函数,使用了ReLU的情况下推荐的初始值√(2/n),n各层的神经元平均与前一层的几个神经元有连接

根据: 用filter的卷积运算连接关系.


由于权值/filter共享原则,输出数据只与输入数据的部分神经元节点(通过滤波器/卷积核)相连,连接数量即为filter_num * filter_size

"""网络结构如下所示conv - relu - conv- relu - pool - conv - relu - conv- relu - pool -conv - relu - conv- relu - pool - affine - relu - dropout - affine - dropout - softmax"""def __init__(self, input_dim=(1, 28, 28),conv_param_1={'filter_num': 16, 'filter_size': 3, 'pad': 1, 'stride': 1},conv_param_2={'filter_num': 16, 'filter_size': 3, 'pad': 1, 'stride': 1},conv_param_3={'filter_num': 32, 'filter_size': 3, 'pad': 1, 'stride': 1},conv_param_4={'filter_num': 32, 'filter_size': 3, 'pad': 2, 'stride': 1},conv_param_5={'filter_num': 64, 'filter_size': 3, 'pad': 1, 'stride': 1},conv_param_6={'filter_num': 64, 'filter_size': 3, 'pad': 1, 'stride': 1},hidden_size=50, output_size=10):# 初始化权重===========# 各层的神经元平均与前一层的几个神经元有连接# 按照滤波器卷积运算,由于权值/filter共享原则,输出数据只与输入数据的部分神经元节点(通过滤波器/卷积核)相连,连接数量即为filter_num * filter_sizepre_node_nums = np.array([1 * 3 * 3, 16 * 3 * 3, 16 * 3 * 3, 32 * 3 * 3, 32 * 3 * 3, 64 * 3 * 3, 64 * 4 * 4, hidden_size])wight_init_scales = np.sqrt(2.0 / pre_node_nums)  # 使用ReLU的情况下推荐的初始值√(2/n)self.params = {}pre_channel_num = input_dim[0]  # 初始通道数为输入数据的通道数for idx, conv_param in enumerate([conv_param_1, conv_param_2, conv_param_3, conv_param_4, conv_param_5, conv_param_6]):self.params['W' + str(idx + 1)] = wight_init_scales[idx] * \np.random.randn(conv_param['filter_num'], pre_channel_num,conv_param['filter_size'], conv_param['filter_size'])self.params['b' + str(idx + 1)] = np.zeros(conv_param['filter_num'])pre_channel_num = conv_param['filter_num']  # 每次卷积后滤波器个数传递给输出数据的通道数self.params['W7'] = wight_init_scales[6] * np.random.randn(64 * 4 * 4, hidden_size) # Affine1层的权值初始化self.params['b7'] = np.zeros(hidden_size)self.params['W8'] = wight_init_scales[7] * np.random.randn(hidden_size,output_size) # Affine2层的权值初始化   self.params['b8'] = np.zeros(output_size)

CNN应用Relu激活函数时设计权重初始值设置方法相关推荐

  1. python权重初始值设置_pytorch自定义初始化权重的方法

    在常见的pytorch代码中,我们见到的初始化方式都是调用init类对每层所有参数进行初始化.但是,有时我们有些特殊需求,比如用某一层的权重取优化其它层,或者手动指定某些权重的初始值. 核心思想就是构 ...

  2. python权重初始值设置_如何查看初始权重(即训练前)?

    @Chris_K给出的答案应该有效-model.get_weights()在调用fit之前打印正确的初始化权重.尝试运行此代码作为健全性检查-它应该打印两个非零的矩阵(对于两个层),然后打印两个零的矩 ...

  3. 关于神经网络权重初始值的设置的研究

    关于神经网络权重初始值的设置的研究 一.权重初始值 二.权重初始值会影响隐藏层的激活值分布 三.Xavier初始值 四.He初始值 五.基于MNIST数据集的权重初始值的比较 一.权重初始值 权值衰减 ...

  4. DL之DNN优化技术:采用三种激活函数(sigmoid、relu、tanh)构建5层神经网络,权重初始值(He参数初始化和Xavier参数初始化)影响隐藏层的激活值分布的直方图可视化

    DL之DNN优化技术:采用三种激活函数(sigmoid.relu.tanh)构建5层神经网络,权重初始值(He参数初始化和Xavier参数初始化)影响隐藏层的激活值分布的直方图可视化 目录

  5. DL之DNN优化技术:自定义MultiLayerNet【5*100+ReLU】对MNIST数据集训练进而比较三种权重初始值(Xavier参数初始化、He参数初始化)性能差异

    DL之DNN优化技术:自定义MultiLayerNet[5*100+ReLU]对MNIST数据集训练进而比较三种权重初始值(Xavier参数初始化.He参数初始化)性能差异 导读 #思路:观察不同的权 ...

  6. DL之DNN优化技术:自定义MultiLayerNetExtend算法(BN层使用/不使用+权重初始值不同)对Mnist数据集训练评估学习过程

    DL之DNN优化技术:自定义MultiLayerNetExtend算法(BN层使用/不使用+权重初始值不同)对Mnist数据集训练评估学习过程 目录 输出结果 设计思路 核心代码 更多输出 相关文章: ...

  7. 基于MNIST数据集的不同权重初始值的比较

    上一篇文章(绘制隐藏层的激活值的分布[直方图])我们知道权重的初始值对激活层的值影响很大,也直接关系到神经网络学习是否顺利的至关重要的一环. 现在通过MNIST数据集的实例来比较下,直观感受不同的初始 ...

  8. linux的root用户默认密码,Linux下root初始密码设置方法

    Ubuntu刚安装后,不能在terminal中运行su命令,因为root没有默认密码,需要手动设定. 以安装ubuntu时输入的用户名登陆,该用户在admin组中,有权限给root设定密码. 给roo ...

  9. Antd Vue range-picker 日期初始值设置 与 重置日期踩坑总结

    一.业务场景: 1.用form表单包裹,用的是 Antd Vue range-picker链接 2.创建时间初始值设置为当天的 00:00:00-23:59:59:如下截图: 2.日期选择器如下截图: ...

最新文章

  1. 卓越软件工程--《微软360度》读后感
  2. Github 开源项目(一)websocketd (实战:实时监控服务器内存信息)
  3. 对象存储使用案例_杉岩MOS海量对象存储中标福建移动
  4. 力扣--- 滑动谜题
  5. java fx listview,JavaFX 8自定义ListView单元它是邪恶的
  6. jzoj3508-好元素【hash,优雅的暴力】
  7. 你可能不知道的 10 条 SQL 技巧
  8. 几行Python代码模拟轮盘抽奖游戏
  9. 合并表格中同一列中相同的内容
  10. bower安装使用入门详情
  11. Nginx软件优化【转】
  12. linux下gcc/g++命令
  13. java开发和安卓开发_Android开发和Java开发有什么区别
  14. php mysql手册下载chm_PHP7教程|PHP7中文手册下载chm版 - 欧普软件下载
  15. 来了来了,2020 首场 Meetup ,可!
  16. win10如何提高电脑画质_详细教您win10显示器分辨率怎么调节。
  17. 个计算机语言使用人数排行,语言使用人数排行_世界语言使用人数排名
  18. 计算机网络的三大功能,计算机网络主要功能
  19. sqlserver数据库的使用
  20. 苹果app退款_app退款理由写什么好?苹果退款理由怎么写才好?

热门文章

  1. 中兴通讯5G公益之路,帮扶乡村振兴
  2. 闪讯利用openwrt路由器拨号教程(三)
  3. python爬虫加数据可视化软件_Python 爬虫 数据分析 可视化
  4. qt实现的五子棋小游戏(Qpainter)
  5. 微信接入js-sdk-获取地理位置,打开微信内置地图
  6. MMSegmentation V0.27.0训练与推理自己的数据集(二)
  7. 自然数拆分(dfs)C/C++
  8. comp9311第三课
  9. 从零开始搭建属于自己的语音识别API服务器(ASRT开源项目)
  10. html 路径线条动画,CSS分层动画可以让元素沿弧形路径运动