Pytorch 实现自定义参数层的例子


Posted in Python onAugust 17, 2019

注意,一般官方接口都带有可导功能,如果你实现的层不具有可导功能,就需要自己实现梯度的反向传递。

官方Linear层:

class Linear(Module):
  def __init__(self, in_features, out_features, bias=True):
    super(Linear, self).__init__()
    self.in_features = in_features
    self.out_features = out_features
    self.weight = Parameter(torch.Tensor(out_features, in_features))
    if bias:
      self.bias = Parameter(torch.Tensor(out_features))
    else:
      self.register_parameter('bias', None)
    self.reset_parameters()

  def reset_parameters(self):
    stdv = 1. / math.sqrt(self.weight.size(1))
    self.weight.data.uniform_(-stdv, stdv)
    if self.bias is not None:
      self.bias.data.uniform_(-stdv, stdv)

  def forward(self, input):
    return F.linear(input, self.weight, self.bias)

  def extra_repr(self):
    return 'in_features={}, out_features={}, bias={}'.format(
      self.in_features, self.out_features, self.bias is not None
    )

实现view层

class Reshape(nn.Module):
  def __init__(self, *args):
    super(Reshape, self).__init__()
    self.shape = args

  def forward(self, x):
    return x.view((x.size(0),)+self.shape)

实现LinearWise层

class LinearWise(nn.Module):
  def __init__(self, in_features, bias=True):
    super(LinearWise, self).__init__()
    self.in_features = in_features

    self.weight = nn.Parameter(torch.Tensor(self.in_features))
    if bias:
      self.bias = nn.Parameter(torch.Tensor(self.in_features))
    else:
      self.register_parameter('bias', None)
    self.reset_parameters()

  def reset_parameters(self):
    stdv = 1. / math.sqrt(self.weight.size(0))
    self.weight.data.uniform_(-stdv, stdv)
    if self.bias is not None:
      self.bias.data.uniform_(-stdv, stdv)

  def forward(self, input):
    x = input * self.weight
    if self.bias is not None:
      x = x + self.bias
    return x

以上这篇Pytorch 实现自定义参数层的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python集合类型用法分析
Apr 08 Python
Python最基本的数据类型以及对元组的介绍
Apr 14 Python
将Emacs打造成强大的Python代码编辑工具
Nov 20 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
利用Python生成文件md5校验值函数的方法
Jan 10 Python
python对离散变量的one-hot编码方法
Jul 11 Python
python 限制函数执行时间,自己实现timeout的实例
Jan 12 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
python seaborn heatmap可视化相关性矩阵实例
Jun 03 Python
Python爬虫之Selenium实现键盘事件
Dec 04 Python
python通用数据库操作工具 pydbclib的使用简介
Dec 21 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
Python中PyQt5/PySide2的按钮控件使用实例
Aug 17 #Python
画pytorch模型图,以及参数计算的方法
Aug 17 #Python
pytorch 共享参数的示例
Aug 17 #Python
Pytorch卷积层手动初始化权值的实例
Aug 17 #Python
pytorch自定义初始化权重的方法
Aug 17 #Python
在Pytorch中使用样本权重(sample_weight)的正确方法
Aug 17 #Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 #Python
You might like
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
javascript 冒号 使用说明
2009/06/06 Javascript
表单元素事件 (Form Element Events)
2009/07/17 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
微信小程序中使用javascript 回调函数
2017/05/11 Javascript
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
小程序指纹验证的实现代码
2018/12/04 Javascript
详解Vue中组件的缓存
2019/04/20 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
利用python实现数据分析
2017/01/11 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
python系列 文件操作的代码
2019/10/06 Python
基于python实现坦克大战游戏
2020/10/27 Python
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
匡威英国官网:Converse英国
2018/12/02 全球购物
教师实习自我鉴定
2013/12/18 职场文书
秋季红领巾广播稿
2014/01/27 职场文书
承诺书的格式范文
2014/03/28 职场文书
会计个人实习计划书
2014/08/15 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
敬老院活动感想
2015/08/07 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python