pytorch tensor 初始化_Pytorch - nn.init 参数初始化方法
Pytorch 的参数初始化 -
给定非线性函数的推荐增益值(gain value):nonlinearity 非线性函数gain 增益
Linear / Identity1
Conv{1,2,3}D1
Sigmoid1
Tanh$\frac{5}{3}$
ReLU$\sqrt{2}$
Leaky Relu$\sqrt{\frac{2}{1 + \text{negative_slope}^2}}$Gain is a proportional value that shows the relationship between the magnitude of the input to the magnitude of the output signal at steady state. Many systems contain a method by which the gain can be altered, providing more or less "power" to the system.
-- From wiki.
1. torch.nn.init.calculate_gaintorch.nn.init.calculate_gain(nonlinearity, param=None)nonlinearlity - 非线性函数名
param - 非线性函数的可选参数
如:import torch.nn as nn
gain = nn.init.calculate_gain('leaky_relu')
>>> 1.414...
2. torch.nn.init 初始化函数import torch
import torch.nn as nn
w = torch.empty(2, 3)
# 1. 均匀分布 - u(a,b)
# torch.nn.init.uniform_(tensor, a=0, b=1)
nn.init.uniform_(w)
# tensor([[ 0.0578, 0.3402, 0.5034],
# [ 0.7865, 0.7280, 0.6269]])
# 2. 正态分布 - N(mean, std)
# torch.nn.init.normal_(tensor, mean=0, std=1)
nn.init.normal_(w)
# tensor([[ 0.3326, 0.0171, -0.6745],
# [ 0.1669, 0.1747, 0.0472]])
# 3. 常数 - 固定值 val
# torch.nn.init.constant_(tensor, val)
nn.init.constant_(w, 0.3)
# tensor([[ 0.3000, 0.3000, 0.3000],
# [ 0.3000, 0.3000, 0.3000]])
# 4. 对角线为 1,其它为 0
# torch.nn.init.eye_(tensor)
nn.init.eye_(w)
# tensor([[ 1., 0., 0.],
# [ 0., 1., 0.]])
# 5. Dirac delta 函数初始化,仅适用于 {3, 4, 5}-维的 torch.Tensor
# torch.nn.init.dirac_(tensor)
w1 = torch.empty(3, 16, 5, 5)
nn.init.dirac_(w1)
# 6. xavier_uniform 初始化
# torch.nn.init.xavier_uniform_(tensor, gain=1)
# From - Understanding the difficulty of training deep feedforward neural networks - Bengio 2010
nn.init.xavier_uniform_(w, gain=nn.init.calculate_gain('relu'))
# tensor([[ 1.3374, 0.7932, -0.0891],
# [-1.3363, -0.0206, -0.9346]])
# 7. xavier_normal 初始化
# torch.nn.init.xavier_normal_(tensor, gain=1)
nn.init.xavier_normal_(w)
# tensor([[-0.1777, 0.6740, 0.1139],
# [ 0.3018, -0.2443, 0.6824]])
# 8. kaiming_uniform 初始化
# From - Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification - HeKaiming 2015
# torch.nn.init.kaiming_uniform_(tensor, a=0, mode='fan_in', nonlinearity='leaky_relu')
nn.init.kaiming_uniform_(w, mode='fan_in', nonlinearity='relu')
# tensor([[ 0.6426, -0.9582, -1.1783],
# [-0.0515, -0.4975, 1.3237]])
# 9. kaiming_normal 初始化
# torch.nn.init.kaiming_normal_(tensor, a=0, mode='fan_in', nonlinearity='leaky_relu')
nn.init.kaiming_normal_(w, mode='fan_out', nonlinearity='relu')
# tensor([[ 0.2530, -0.4382, 1.5995],
# [ 0.0544, 1.6392, -2.0752]])
# 10. 正交矩阵 - (semi)orthogonal matrix
# From - Exact solutions to the nonlinear dynamics of learning in deep linear neural networks - Saxe 2013
# torch.nn.init.orthogonal_(tensor, gain=1)
nn.init.orthogonal_(w)
# tensor([[ 0.5786, -0.5642, -0.5890],
# [-0.7517, -0.0886, -0.6536]])
# 11. 稀疏矩阵 - sparse matrix
# 非零元素采用正态分布 N(0, 0.01) 初始化.
# From - Deep learning via Hessian-free optimization - Martens 2010
# torch.nn.init.sparse_(tensor, sparsity, std=0.01)
nn.init.sparse_(w, sparsity=0.1)
# tensor(1.00000e-03 *
# [[-0.3382, 1.9501, -1.7761],
# [ 0.0000, 0.0000, 0.0000]])
pytorch tensor 初始化_Pytorch - nn.init 参数初始化方法相关推荐
- Pytorch nn.init 参数初始化方法
- python保存模型与参数_基于pytorch的保存和加载模型参数的方法
当我们花费大量的精力训练完网络,下次预测数据时不想再(有时也不必再)训练一次时,这时候torch.save(),torch.load()就要登场了. 保存和加载模型参数有两种方式: 方式一: torc ...
- 【torch.nn.init】初始化参数方法解读
文章目录 torch.nn.init 均匀分布 正态分布 常数分布 全1分布 全0分布 对角分布 dirac 分布 xavier_uniform 分布 xavier_normal 分布 kaiming ...
- Pytorch的默认初始化分布 nn.Embedding.weight初始化分布
一.nn.Embedding.weight初始化分布 nn.Embedding.weight随机初始化方式是标准正态分布 ,即均值$\mu=0$,方差$\sigma=1$的正态分布. 论据1--查看 ...
- 卷积核权值初始化_Pytorch卷积层手动初始化权值的实例
由于研究关系需要自己手动给卷积层初始化权值,但是好像博客上提到的相关文章比较少(大部分都只提到使用nn.init里的按照一定分布初始化方法),自己参考了下Pytorch的官方文档,发现有两种方法吧. ...
- pytorch系列 -- 9 pytorch nn.init 中实现的初始化函数 uniform, normal, const, Xavier, He initialization...
本文内容: 1. Xavier 初始化 2. nn.init 中各种初始化函数 3. He 初始化 torch.init https://pytorch.org/docs/stable/nn.html ...
- pytorch中的参数初始化方法
参数初始化(Weight Initialization) PyTorch 中参数的默认初始化在各个层的 reset_parameters() 方法中.例如:nn.Linear 和 nn.Conv2D, ...
- PyTorch常用参数初始化方法详解
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 【细聊】torch.nn.init 初始化
文章目录 1.init.uniform 2.nn.init.normal 3.nn.init.constant 4.nn.init.eye 5.nn.init.dirac 6.nn.init.xavi ...
最新文章
- 对AI行业未来发展的一些看法
- boost::hana::equal用法的测试程序
- PHP实现多服务器session共享之NFS共享
- 系统设计基础:系统设计基本任务相关知识
- npm的镜像替换淘宝
- python怎么读取txt文件-python怎么读取txt文件内容
- Samba服务器配置(2)--认识smb.conf配置文件
- 程序匠人 - 程序调试(除错)过程中的一些雕虫小技
- Kindle 电子书转换 azw3 mobi
- 计算机专业必装软件mac,MAC电脑可运行的常用软件有哪些?
- STM32电机TB6612驱动
- 编译java源文件(在cmd下编译)傻瓜式教学
- 机顶盒安装APK方法
- SATA电源线的作用
- FATFS文件系统复制文件
- PYNQ 采集计划(二)Socket服务端与客户端的搭建,pynq到pc的数据流传输
- Pygame pgu 入门详解
- 记录一次微信小程序+阿里云oss的配置步骤和方法
- oracle sysdate取年月日,oracle获取当前年月日时分秒季度周
- 手把手教你肢解钓鱼网站
热门文章
- 几何光学学习笔记(9)- 3.3 理想光学系统的物像关系
- BI工具对比|Smartbi与亿信ABI两款BI数据看板软件对比
- 最新v6.0 tgroupon分销系统源码+TGROUPON卖货系统 ECSHOP+ECTOUCH内核
- Apache整合Tomcat详解系列(三)Apache性能调优
- python turtle库输出文字_Python 海龟 turtle 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计...
- 海康威视网络摄像头配置本地存储服务器(远程连接查看回放)
- kafka报错:The Cluster ID doesn‘t match stored clusterId Some in meta.properties
- Spring5:p命名和c命名空间注入
- Android WifiDisplay分析二:Wifi display连接过程
- Mac电脑的一键切换输入法神器,自动切换输入法!