import math
from torch.autograd import Variable
import torch
import torch.nn as nn import warnings
warnings.filterwarnings("ignore") def _calculate_fan_in_and_fan_out(tensor):
print("***********_calculate_fan_in_and_fan_out****************")
dimensions = tensor.dim()
print("dimensions",dimensions)
if dimensions < 2:
raise ValueError("Fan in and fan out can not be computed for tensor with fewer than 2 dimensions") if dimensions == 2: # Linear
fan_in = tensor.size(1)
fan_out = tensor.size(0)
print("fan_in",fan_in)
print("fan_out",fan_out)
else:
num_input_fmaps = tensor.size(1)
num_output_fmaps = tensor.size(0)
print("num_input_fmaps",num_input_fmaps)
print("num_output_fmaps", num_output_fmaps)
receptive_field_size = 1
if tensor.dim() > 2:
receptive_field_size = tensor[0][0].numel()
print("receptive_field_size", receptive_field_size) fan_in = num_input_fmaps * receptive_field_size
fan_out = num_output_fmaps * receptive_field_size return fan_in, fan_out def xavier_uniform(tensor, gain=1):
print("****************xavier_uniform*****************") fan_in, fan_out = _calculate_fan_in_and_fan_out(tensor)
print("fan_in", fan_in)
print("fan_out", fan_out) std = gain * math.sqrt(2.0 / (fan_in + fan_out))
print("std",std)
a = math.sqrt(3.0) * std # Calculate uniform bounds from standard deviation
print("a",a)
return tensor.uniform_(-a, a) def xavier_normal(tensor, gain=1):
print("****************xavier_normal*****************") fan_in, fan_out = _calculate_fan_in_and_fan_out(tensor)
print("fan_in", fan_in)
print("fan_out", fan_out) std = gain * math.sqrt(2.0 / (fan_in + fan_out))
print("std", std) return tensor.normal_(0, std) w = torch.Tensor(3,5)
print("w",w)
xavier_uniform=xavier_uniform(tensor=w,gain=1)
print("xavier_uniform",xavier_uniform)
print("w",w) xavier_normal=xavier_normal(tensor=w,gain=1)
print("xavier_normal",xavier_normal)
print("w",w)
'''

w tensor([[6.5103e-38, 0.0000e+00, 5.7453e-44, 0.0000e+00, nan],
[0.0000e+00, 1.3733e-14, 6.4076e+07, 2.0706e-19, 7.3909e+22],
[2.4176e-12, 1.1625e+33, 8.9605e-01, 1.1632e+33, 5.6003e-02]])
relu_gain 1.4142135623730951
****************xavier_uniform*****************
***********_calculate_fan_in_and_fan_out****************
dimensions 2
fan_in 5
fan_out 3
fan_in 5
fan_out 3
std 0.7071067811865476
a 1.2247448713915892
xavier_uniform tensor([[ 0.0172, 1.0726, -0.5239, -0.2902, -0.5868],
[ 0.7199, 0.5818, 0.6772, -0.2686, 0.5099],
[ 1.1365, -0.8935, 0.0412, -0.4518, -0.9012]])
w tensor([[ 0.0172, 1.0726, -0.5239, -0.2902, -0.5868],
[ 0.7199, 0.5818, 0.6772, -0.2686, 0.5099],
[ 1.1365, -0.8935, 0.0412, -0.4518, -0.9012]])
****************xavier_normal*****************
***********_calculate_fan_in_and_fan_out****************
dimensions 2
fan_in 5
fan_out 3
fan_in 5
fan_out 3
std 0.7071067811865476
xavier_normal tensor([[ 1.8155e+00, -1.5939e+00, 6.1080e-02, 1.3572e-01, -2.4904e-02],
[ 1.6301e-01, -7.8886e-01, 4.7981e-01, 2.5004e-02, 3.0120e-01],
[ 6.4991e-01, 2.0138e-01, -1.7021e-03, 1.2900e-02, 3.7923e-01]])
w tensor([[ 1.8155e+00, -1.5939e+00, 6.1080e-02, 1.3572e-01, -2.4904e-02],
[ 1.6301e-01, -7.8886e-01, 4.7981e-01, 2.5004e-02, 3.0120e-01],
[ 6.4991e-01, 2.0138e-01, -1.7021e-03, 1.2900e-02, 3.7923e-01]])

'''

  

最新文章

  1. nodejs中获取时间戳、时间差
  2. MSSQL如何在没有主键的表中删除重复数据
  3. Jquery+Ajax+Json的使用(微信答题实例)
  4. BZOJ 2120 数颜色(带修改的莫队)
  5. cluster analysis in data mining
  6. poj3468A Simple Problem with Integers(线段树,在段更新时要注意)
  7. java 中 正则 正则表达式 匹配 url
  8. 最全面的 MySQL 索引详解
  9. bzoj 2734: [HNOI2012]集合选数 状压DP
  10. CentOS最小化安装后启用无线连接网络
  11. web前端工程师全套教程免费分享
  12. iOS 讯飞语音测试没问题,一上线就用不了了
  13. 豌豆夹Redis解决方案Codis源码剖析:Dashboard
  14. $Django 路飞之课程下的分类,用户登陆成功前端存cookie,
  15. 华为交换机VRRP 综合配置示例
  16. 2017-2018-4 20155317《网络对抗技术》EXP3 免杀原理与实践
  17. Docker中Spring boot+VueJS+MongoDB的前后端分离哲学摔跤
  18. Qt中QString::toStdString().c_str() 偶尔存在问题
  19. H5特性回顾
  20. opencv图像处理基础 (《OpenCV编程入门--毛星云》学习笔记一---五章)

热门文章

  1. 【9】letter-spacing / box-shadow
  2. 阶段3 3.SpringMVC&#183;_01.SpringMVC概述及入门案例_01.SpringMVC概述及入门案例
  3. 63不同路径II
  4. 转载 STM32 使用Cubemx 建一个USB(HID)设备下位机,实现数据收发
  5. 【疑难杂症】【Solved】maven-compiler-plugin 在 idea 下的问题
  6. 接口自动化-python unittest+requests+HTMLrunner
  7. cocos2dx[3.2](6) 节点类Node
  8. PHP 按照时区获取当前时间
  9. 简述Vue中使用Vuex
  10. hbase 查看hfile文件